Android

时间:2016-05-11 10:26:25

标签: java android opencv machine-learning detection

我目前正在开发一个Android应用程序来检测和跟踪在特定道路上行驶的任何类型的车辆。我目前正在使用openCV库来执行此操作。经过这么多天的阅读,我必须意识到我需要使用BackgroundSubtractorMOG来检测运动,但是我如何识别特定的车辆对象。 我扼杀了两个不同的概念,即:级联分类器和光流。不知道这些是否是我需要的。 我实际上有一个haar分类器here,我试图在以下代码片段中实现:

 public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

    mRgb = inputFrame.rgba();
    mGray = inputFrame.gray();

    backgroundSubtractorMOG2.apply(mGray, mFGMask, 0.5d);

   //morphological opening 
    Imgproc.erode(mFGMask, mFGMask, new Mat());
    Imgproc.dilate(mFGMask, mFGMask, new Mat());
   //morphological closing
    Imgproc.dilate(mFGMask, mFGMask, new Mat());
    Imgproc.erode(mFGMask, mFGMask, new Mat());

  //mJavaDetector was earlier defined as
  // mJavaDetector = new CascadeClassifier(mCascadeFile.getAbsolutePath());

    MatOfRect vehicles = new MatOfRect();
    if (mJavaDetector != null) {
        mJavaDetector.detectMultiScale(mFGMask, vehicles, 1.1, 1, 2, new Size(0,0), new Size());
    }
    Rect[] vehiclesArray = vehicles.toArray();
    for (int i = 0; i < vehiclesArray.length; i++)
        Imgproc.rectangle(mRgb, vehiclesArray[i].tl(), vehiclesArray[i].br(), VEHICLE_RECT_COLOR, 3)
    return this.mRgb;
}

运行此功能后,屏幕上没有任何检测到的迹象。 我的问题是:

  1. 这个项目在android中是否可行?
  2. 如果是,您建议采用哪种最佳方法?
  3. 是否可以统计这些车辆?
  4. 是否可以将车辆分类?

0 个答案:

没有答案