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.

[参考译文] SK-AM62A-LP:查询已识别的类。

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490077/sk-am62a-lp-query-on-recognized-class

器件型号:SK-AM62A-LP

工具/软件:

尊敬的专家:

怎么会这样呢 在显示之前获取已识别的类 。  
在我的用例中、 无需对每个帧进行推理。 那么,如何使用 hashmap 或词典存储每个帧的推理假设30秒,在数组中显示具有最大计数的类.  显示阵列后、应清除并执行相同的过程、直到进程退出。  

请给我一个 需要修改的文件的位置。 若要进行修改、我是否需要为文件打补丁并重新编译 SDK 或任何其他选项。

此致、
Sajan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sajan、

    我们很高兴为您提供帮助。  

    我想确保我了解您的要求。 您希望对 所有帧执行 ML 推理、但不希望在每个帧上显示推理结果。 相反、您希望将结果保存在某种数据结构中、然后当出现一定数量的保证时、您希望显示推理。 我的回答正确吗?   

    这是一项应用级要求、不需要重新编译 SDK。 我建议您对此应用使用 edgeai-gst-apps: https://github.com/TexasInstruments/edgeai-gst-apps。 apps_python/post_process.py 会处理推理结果并对输出帧进行注释。 如果您的模型用于对象检测、则可以在以下行插入代码: https://github.com/TexasInstruments/edgeai-gst-apps/blob/main/apps_python/post_process.py#L255C5-L255C30。同样、对于分类、您可以在以下行插入代码: https://github.com/TexasInstruments/edgeai-gst-apps/blob/main/apps_python/post_process.py#L111 或此处调用的方法。  

    请告诉我、这是否适合您。

    此致、

    Qutaiba

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Qutaiba:

    [引述 userid="546901" url="~/support/processors-group/processors/f/processors-forum/1490077/sk-am62a-lp-query-on-recognized-class/5723741 #5723741"]

    分类您可以在以下行插入您的代码: https://github.com/TexasInstruments/edgeai-gst-apps/blob/main/apps_python/post_process.py#L111 或此处调用的方法。  

    [/报价]

    我尝试修改这一行。 添加所需逻辑之前的初始步骤是添加样本字符串。

    sample = "Hello"
    img = self.overlay_topN_classnames(img, sample)
    #added a string to sample variable and an integer to test 

    但这对我来说是行不通的。 我在自定义模型和 CONFIG.YAML 中进行了尝试。
    发现变量 CLASS_NAME 与其关联、更改并在显示中反映。 下面是 post_process.py 的代码片段

    for idx in topN_classes:
                idx = idx + self.model.label_offset
                if idx in self.model.dataset_info:
                    class_name = self.model.dataset_info[idx].name
                    if not class_name:
                        class_name = "UNDEFINED"
                    if self.model.dataset_info[idx].supercategory:
                        class_name = (
                            self.model.dataset_info[idx].supercategory + "/" + class_name
                        )
                else:
                    class_name = "UNDEFINED"
    
                text_size, _ = cv2.getTextSize(class_name, font, font_size, 2)

    此致、
    Sajan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sajan、

    我尝试修改这一行。 作为添加所需逻辑之前的初始步骤、添加了样本字符串。

    方法 overlay_topN_classnames 需要一个来自分类模型的图像和结果数组。 它不接受文本并覆盖在图像上。  

    在进行任何修改之前、我想确保您的自定义模型在 edgeai-gst-apps 上工作。 之后、我们可以修改代码。 如您所述、变量 calss_name 可用于跟踪当前帧中标识的类。  

    您可以在此处插入一些逻辑: https://github.com/TexasInstruments/edgeai-gst-apps/blob/main/apps_python/post_process.py#L168 以增加您建议在查询中使用的词典中的计数器。 之后,您可以插入逻辑来决定是否发生了对某个类的足够数量的引用。 当然,正如你已经知道的,这个词典已经从类级的函数中定义出来了。  

    请告诉我这是否有帮助。

    此致、

    Qutaiba

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Qutaiba、

    告诉我这是否有帮助

    是的。 我通过将 class_name 值添加到列表中来满足我的要求。 这对我很有效。
    感谢你的帮助。

    此致、
    Sajan