Git Product home page Git Product logo

openvehiclevision's Introduction

OpenVV: Open Source Vehicle Vision Library

The new version (openvv2) is under development, questions about papers can be sent to the email: yingzhenqiang-at-gmail-dot-com.

Open Source Projects

Road Scene Understanding

Deep-Learning-Based Segmentation

Driver Vision Datasets

Public datasets

Videos from driver's perspective

openvehiclevision's People

Contributors

baidut avatar bitdeli-chef avatar gitter-badger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openvehiclevision's Issues

编译Efficient Graph-Based Image Segmentation

'srandom': identifier not found
'random': identifier not found

在vc++中程序中用了srandom()和random(),头文件为stdlib.h,但编译出现错误error C3861: “srandom”: 找不到标识符。
原因是现在vc++编译器的库函数中没有srandom()和random(),分别用srand()和rand()代替了。

Road Saliency

下载ca代码,添加test 图片
test/ ***.bmp 要求bmp格式,去掉该要求

直接测试道路场景图片,效果很差,车辆和环境融为一体,检测不出来

image

曲线拟合

输入:各个点的坐标
输出:匹配矩阵

灰度图像分割

+rgb2ii

Chang log:

  • add default alpha 0.5
  • fix bug: Undefined function 'log' for input arguments of type 'uint8'.
  • remove default alpha, add ui tool to help choose alpha
  • 2016-03-14 remove ui tool
    image = ImCtrl(@imread, FilePick());
    alpha = Slider([0 1]);
    ii_image = ImCtrl(@rgb2ii.will2014, image, alpha);
    Fig.subimshow(image, ii_image);

标注显示工具

  • 多类别的GT
  • 单个图片处理和视频处理
  • 突出GT边缘
  • 结果对比,和GT对比的漏报和错检
  • 多个结果对比,多的漏报(越少越好)和多的错检(越少越好)

三种方式显示GT标注,目前仅支持两类识别的GT

image

GetFullPath by Jan Simon

  1. download here
  2. add to path

极端的测试用例报错没有关系,不影响正常使用。

...
 ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..
  ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..
  ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..\..
  ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..\..\..
  ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..\..\..\..
  ok: C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..\..\..\..\..
Path: [C:\Users\zqying\AppData\Roaming\MathWorks\MATLAB\R2015a\..\..\..\..\..\..\..]  ==> error
  GetFullPath replied: [C:\]
  Expected:            [C:\\]
Error using uTest_GetFullPath (line 336)
Error using uTest_GetFullPath (line 330)
uTest_GetFullPath: GetFullPath with folder failed

Error in InstallMex (line 191)
      feval(UnitTestName);

336          error(ErrID, lasterr);

SVM训练分类

svmtrain will be removed in a future release. See fitcsvm, ClassificationSVM, and CompactClassificationSVM instead.

机器学习的方法训练也需要较好的区分特征

Mex支持需要mex -setup

Invalid MEX-file 'E:\Documents\MATLAB\G-toolbox\segment\Efficient Graph-Based Image
Segmentation\mexFelzenSegmentIndex.mexw64': 找不到指定的模块。

MatConvNet 语义分割

> vl_compilenn('enableGpu', true)

Error using vl_compilenn>search_cuda_devkit (line 604)
Could not find a valid NVCC executable\n

Error in vl_compilenn (line 251)
  if isempty(opts.cudaRoot), opts.cudaRoot = search_cuda_devkit(opts) ; end

vvDataset

The dataset data type might be removed in a future release. To work with heterogeneous data, use the MATLAB® table data type instead. See MATLAB table documentation for more information.

table

    input_video = '%datasets\2016_0208_103559_417.MOV';
    Out.namefmt = '%%Out/%04d.jpg';
    Out.roi = [480 640];
    Out.fps = 2;
    vvDataset.vid2img(input_video, Out);

夜间路面识别

暂放该问题

夜间道路的颜色信息几乎丢失,由于夜间拍摄亮度不足,噪点很多,HSV中的HS分量都非常不稳定,显示出噪声
image

RangeSlider 事件响应

RangeSlider 滑动条一旦改变位置就会触发回调函数,所以拖动时所有中间值都会被执行
对于执行比较慢的回调函数则会失去响应。

解决
找松开滑动条才触发的属性

阴影检测

检测强阴影 S2,处理弱阴影 S_B

imgFile = '%datasets\KITTI\data_road\training\image_2\uu_000083.png';
% uu_000083
% um_000008
Raw = RawImg(imgFile);
ROI = Raw.rectroi({ceil(Raw.rows/2):Raw.rows,1:Raw.cols});
S2 = vvFeature.Slog(Raw.data);

% first do road marking remval, then do S2 feature extraction

Fig.subimshow(S2);return;

default

运行shadow_code

问题1 在windows下跑linux matlab code
可以删除该行,或者从msys2中打开matlab

车道线提取算法评测

车道线提取算法评测方式:

Caltech数据集

正确率
ISM Video-Based Lane Detection Using a Fast Vanishing Point Estimation Method
评测数据

Dataset Cordova 1 Cordova 2 Washington 1 Washington 2
Accuracy 98.8% 98.3% 91.4% 95.3%

road segmentation

方案1 exe 调用

Raw = imread('F:\Documents\pku-road-dataset\1\EMER0009\0379.jpg');
Seg =  FelzenSegment(Raw);
implot(Raw,Seg);

方案2 mex 编写
方案3 c实现

matlab image segmentation

kmeans Fast kmeans Algorithm Code

二次扫描提取的边界点不可靠

加权:远处的边界点权重低于近处的
利用边界在空间上的连续性采用跟踪的方法搜索边界

或者修改特征提取步骤
引入聚类方法

过滤

*求导数,去掉导数太大的点
*对得到的点再过滤阴影点

implot

implot has been removed, see #16

%IMPLOT Plot images.
%   IMPLOT(I,J,K,...) plots I,J,K,... with automatic layout, each input can
%   be a string pecifying the image, a matrix or image data(rgb/gray/bw). Filename or
%   variable name of each input and the type of image will be titled.
%
%   Example 1
%   ---------
%   Plot the images of given folder. 
%
%      Football = imread('football.jpg');
%      Cameraman = imread('cameraman.tif'); 
%      implot(Football, Cameraman);
%      implot('kids.tif',rgb2gray(Football), im2bw(Cameraman));
%      maxfig;
% 
%   Example 2
%   ---------
%   Plot the images of a given folder. 
%
%      files = str2files('dataset/lane detection/*.picture'); 
%      % files = str2files('./*.jpg'); % current folder
%      implot(files{:});
%   
%   See also SELPLOT.

数据集发布

roma road area ground truth
用ps很方便,但是输出为彩色图像,注意存储为png格式,jpg有损压缩,不能作为标定。
需要matlab处理一下,保存为二值图像
二值图像压缩还不如不压缩

image

shadow free image

参数

Dataset param
roma
BDXD54 0.2
BDXN01
LRAlargeur13032003 0.11
SLD2011-3 0
Sunny-shadow 0.06

image

第一阶段 demo 原型

目标

细化问题

暂放双车道,多车道,先解决农村道路

农村道路特点:

无车道标记线,道路两旁为杂草或者水泥地pavement

  • 必要输出:车道线直线参数k和b
  • 不必要输出:路面区域,输出一个mask二值图像

直线参数采用txt字符存储

方便查看
对每个视频,输出一个txt文件保存以上参数,以供汇总demo程序调用,或用于标定改进等工作。

二值图像采用bmp格式

优点:BMP 支持 1 位到 24 位颜色深度。BMP 格式与现有 Windows 程序(尤其是较旧的程序)广泛兼容。
缺点: BMP 不支持压缩,这会造成文件非常大。

汇总demo程序采用opencv+QT编写

运行速度快,跨平台,可移植到嵌入式,易打包,方便制作界面。
读取txt和mask图像,并显示。

块效应

压缩的时候对对比度分量进行了压缩,造成一个块内的像素的对比度变化不大,有明显的块效应
image

S2 特征不可靠

S2特征仅仅可以改善S通道 抵抗强阴影的干扰,建议采用II光照不变特征。
rgb2ii

不可靠表现在:

'K:\Documents\MATLAB\dataset\roma\LRAlargeur13032003\IMG00772.jpg'
强阴影时路面S2高于边界,需要通过边缘实现边界检测

Test.onVideo('K:\Documents\MATLAB\dataset\SLD2011\dataset1\sequence_1.mpg');
ROI设置需要去除底边
算法需要能够抗遮挡
提供ROI设置接口

S2特征不能直接进行分割,因为有的车道标记线会影响接下来的扫描
暂时是 通过mask去除中间区域解决的
default

路面车辆的干扰

ISM2015
ICASSP2016
的方法均无法解决

关键在路面分割这一环节的瓶颈

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.