修复AI识别的bug

serial
BlueMatthew 1 year ago
parent 7512789cfd
commit ab8e2a1d30

@ -834,7 +834,7 @@ bool CPhoneDevice::OnImageReady(cv::Mat& mat)
double startTime = ncnn::get_current_time();
#endif // _DEBUG
bool detected = YoloV5NcnnDetect(mat, true, objs);
bool detected = YoloV5NcnnDetect(mat, true, m_pRecognizationCfg->blobName8, m_pRecognizationCfg->blobName16, m_pRecognizationCfg->blobName32, objs);
#ifdef _DEBUG
double elasped = ncnn::get_current_time() - startTime;
// __android_log_print(ANDROID_LOG_DEBUG, "YoloV5Ncnn", "%.2fms detect", elasped);

@ -414,7 +414,7 @@ bool YoloV5NcnnDetect( ncnn::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_
return true;
}
bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OBJECT>& objects)
bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, const std::string& blobName8, const std::string& blobName16, const std::string& blobName32, std::vector<IDevice::RECOG_OBJECT>& objects)
{
if (use_gpu && ncnn::get_gpu_count() == 0)
{
@ -480,7 +480,7 @@ bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OB
// stride 8
{
ncnn::Mat out;
ex.extract("output", out);
ex.extract(blobName8.c_str(), out);
ncnn::Mat anchors(6);
anchors[0] = 10.f;
@ -499,7 +499,7 @@ bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OB
// stride 16
{
ncnn::Mat out;
ex.extract("781", out);
ex.extract(blobName16.c_str(), out);
ncnn::Mat anchors(6);
anchors[0] = 30.f;
@ -518,7 +518,7 @@ bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OB
// stride 32
{
ncnn::Mat out;
ex.extract("801", out);
ex.extract(blobName32.c_str(), out);
ncnn::Mat anchors(6);
anchors[0] = 116.f;

@ -109,4 +109,4 @@ bool YoloV5Ncnn_Init(const std::string& paramFile, const std::string& binFile);
// public native Obj[] Detect(Bitmap bitmap, boolean use_gpu);
bool YoloV5NcnnDetect( ncnn::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OBJECT>& objects);
bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, std::vector<IDevice::RECOG_OBJECT>& objects);
bool YoloV5NcnnDetect( cv::Mat& mat, bool use_gpu, const std::string& blobName8, const std::string& blobName16, const std::string& blobName32, std::vector<IDevice::RECOG_OBJECT>& objects);

@ -117,7 +117,7 @@ public class MicroPhotoService extends Service {
private String mCmdid = "";
private NotificationManager mNotificationManager;
private final Map<String, PowerManager.WakeLock> mWakeLocks = new HashMap<>();
private int mHeartbeatDuration = 0; // Default 1m: 10 * 60 * 1000 from NDK
private int mHeartbeatDuration = 0; // MUST BE 0!!!
private long mNextHeartbeatTime = 0;
private PositionManager mPositionManager = null;

Loading…
Cancel
Save