需要将目标检测的类别和框,实时输出监控。类别名称为中文。
opencv无法直接输出中文,强制输出会乱码,只有PIL调用中文字体库才能正确显示。
为此做时间对比如下:
imagesize cv2.putText/ms PILdraw.text/ms
1920,1080 0.32 7.4
640,384 0.3331 1.4236
时间差距明显。对于30fps的相机来说,处理时间仅有33ms,显示就用7.4ms,会占用GPU处理时间。
方法1:本来准备将中文改成英文。无法某领导太XX,说市里领导来视察一共只看2分钟,还得翻译,太影响用户体验了。坚持用中文。
方法2:调用PIL,提前生成要显示的类别中文,变成数组。在实时检测的时候,根据类别,调用数据,直接赋值。
时间约为0.29 ms。