图像处理——基于深度学习HED实现目标边缘检测
生活随笔
收集整理的這篇文章主要介紹了
图像处理——基于深度学习HED实现目标边缘检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
使用傳統的圖像來檢測目標邊緣,受到干擾的因素太多了,而已魯棒性不高,同樣的參數,在這個環境下可以,換個環境就根本檢測不到物體的邊緣,或者把不是邊緣的也檢測進去了。ICCV2015有人提出了整體嵌套邊緣檢測,就通過深度學習模型執行圖像到圖像的預測。論文地址:https://arxiv.org/abs/1504.06375,github上的工程:https://github.com/s9xie/hed。這里我使用opencv dnn與c++演示hed邊緣檢測的效果。
HED邊緣檢測
1.檢測代碼
void edgeDetection(cv::Mat &src,cv::Mat &dst,double threshold) {CV_DNN_REGISTER_LAYER_CLASS(Crop, CropLayer);cv::Mat img = src.clone();cv::Size reso(500, 500);cv::Mat blob = cv::dnn::blobFromImage(img, threshold, reso, cv::Scalar(104.00698793, 116.66876762, 122.67891434), false, false);cv::dnn::Net net = cv::dnn::readNet("model/deploy.prototxt", "model/hed.caffemodel");net.setInput(blob);cv::Mat out = net.forward();cv::resize(out.reshape(1, reso.height), out, img.size());cv::Mat out2;out.convertTo(dst, CV_8UC3, 255); }int main(void) {cv::Mat src = cv::imread("1.jpg");cv::namedWindow("原圖", 0);cv::imshow("原圖", src);resize(src, src, cv::Size(500, 500));cv::Mat dst;edgeDetection(src, dst,2.2);cv::namedWindow("HED", 0);cv::imshow("HED", dst);cv::waitKey(0);return 0; }2.運行效果
官網效果:
總結
以上是生活随笔為你收集整理的图像处理——基于深度学习HED实现目标边缘检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像处理——基于OpenCV的Schar
- 下一篇: OpenCV图像处理—— 凸包检测