This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/TDA2EVM5777: Adaboost/Cascade Classifier API and training tool

Part Number: TDA2EVM5777


Tool/software: Linux

Hi,

I want to develop an object detection application on TDA2x.

The idea is to use HOG feature and Gentle Adaboost classifier.

But from the C66x vlib "vlib_c66x_3_3_0_3" in VisualSDK, there isn't any api for adaboost method.

Kindly let me know where can I find the valued API or method ?

Additionally, there is a reference project "200.V.OD.C66X.00.06" in Visual SDK.

If I want to implement my application based on this library "Object Detection",

the more information is necessary.

For example which training tool is fit to this library ?

What is different from the usual tool "traincascade" in OpenCV ?

How about the structure is in the weight model binary file ? (Please refer to the file "200.V.OD.C66X.00.06\modules\ti_object_detection\test\testvecs\input\vd_adaboost_weights.bin")

Thanks & Best Regards

  • Hi,

    I have forwarded your question to algorithms experts.

    Regards,
    Yordan
  • Hi,

    We didn't expose the AdaBoost API to VLIB as the implementation is highly optimized and very specific to the tree structure used in Object Detection application.

    Although if you have access to the source code of Object Detection module you can refer to the file <DSP_APPS>\dsp_apps\modules\ti_object_detection\algo\src\adaboost.c.

    Adaboost object detection training tool (Matlab based) is publicly available here. 

    https://github.com/tidsp/acf-jacinto

    Some basic information on how to train is also provided.

    To know details about the structure of weights please refer to file,

    <DSP_APPS>\dsp_apps\modules\ti_object_detection\algo\src\adaboost_const_vd.c

    If the external binary file is not provided then the application uses the weights in adaboost_const_vd.c.

    In case you are providing a different binary file, the AdaBoost tree structure and number of trees should be maintained. 

    Regards,
    Shyam

  • Dear Mr. Shyam

    Thanks for your reply.

    I think we have found the answer.

    We will go further and develop our application. 

    Best Regards

    Wenqin. Yang

  • Dear Mr. Shyam

    Sorry to trouble you again.
    I have a question about importing the trained parameters into Object Detection application.
    There are some float data for thresholds and scores in the trained model such as "AcfJacintoInriaDetector.mat".
    But in the Object Detection Library of Vision SDK, just integer type could be used for these weights.
    What is the relation between the origin (trained from acf-jactinto) and the destination, and how to convert ?

    Thanks & Best Regards
  • Dear Mr. Wenqin Yang,

    The weights and thresholds in floating points must be converted to fixed point Q.13 fixed point format before fed to the application.

    Hope this helps.

    Regards,
    Shyam

  • Dear Mr. Shyam

    Thanks for your helps.

    I found these actions in the source file "acfSaveDescriptor.m" of acf-jacinto project as below.
    The thresholds would be converted to the fixed point data by using the function "float2fix",
    and the weights would be converted to fixed point Q.13 fixed point format .

    But for the feature index, I have not known the meaning of the processing "Find the raster index corresponding to the vertical scan index".
    Is it necessary before fed the trained parameters to the application?
    Could you explain it more detail ?

    Sorry for my poor knowledge.

    Thanks&Best Regards

    Wenqin Yang