求助:嘉楠K510套件文字显示异常的猜测和解决进度
[复制链接]
在之前的AI脚本尝试中,发现文字显示异常,以face_expression脚本为例,根据视频演示,应当是如下的效果
但我根据源码编译出来的效果
可以看到,本来应该对表情进行说明文字变成了一些离散的点。
咨询过嘉楠的技术支持,表示原因可能有两个:
1)和训练模型精度有关系
2)异常的文字是中文,默认显示是英文,对长度也有要求
读取源代码,可以看到显示文字是调用了putText函数。在可信状态(score_max >= thresh)下,显示文字内容为text
cv::putText(img_argb, text, cv::Point(x0, y0), cv::FONT_HERSHEY_COMPLEX, 2, cv::Scalar(255, 0, 0, 255), 2, 8, 0);
其中text由模型给出
std::string text = fexpre.labels[score_index] + ":" + std::to_string(round(score_max * 100) / 100.0).substr(0,4);
但是,从
face_expression fexpre(fe_net_len, fe_num, thresh);
fexpre.load_model(fe_kmodel_path); // load kmodel
fexpre.prepare_memory(); // memory allocation
可以看到fexpre为face_expression,进一步查找face_expression.h文件
std::vector<std::string> labels
{
"Neutral", "Happy", "Sad", "Surprise", "Fear", "Disgust", "Anger", "Contempt"
};
实在找不到中文或者过长文字了。
从文字的效果来看,似乎是把一个长方形的文字显示块,强行拉成了一个平行四边形。但并没有找到如何修改。
下一步准备分两条路继续尝试:
1、修改屏幕显示,尝试重新编译一下,看看不管是否识别,强制在屏幕显示某个文字,比如labels[1]。
2、把识别出来的表情,通过串口打印出来,看看是否能够正常识别。
|