这个博客系列,简单来说,今天我们就是要研究
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TURJMU9DMHhNRGszTVRZM01qYzJMbkJ1Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
6个文件,看看在最新的OpenCV中,它们是如何发挥作用的。
在配置使用的过程中,需要注意使用较高版本的VS避免编译器兼容问题;由于DNN程序的运行依赖于训练成功的模型,因此需要预先下载准备;此外如果出现各种报错,需要对症下药。
此外,由于需要使用common.hpp文件,所以需要引入dnn目录到include中
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TURZM09TMHhPREF5TlRReU16a3hMbkJ1Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
=====================================================================================友善的分割线============================
为了程序的成功运行,需要先前往
"Download caffemodel and prototxt files:\n"
" http://eecs.berkeley.edu/~rich.zhang/projects/2016_colorization/files/demo_v2/colorization_release_v2.caffemodel\n"
" https://raw.githubusercontent.com/richzhang/colorization/master/colorization/models/colorization_deploy_v2.prototxt\n";
下载相关模型。
导入.cpp程序,直接运行的话,会报这些错误:
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TURreE5pMHhNakUzTWpZeE16RTNMbkJ1Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
那么这个错误主要是说samples不存在。虽然我也不知道这个以 samples开头的命名空间是用来做什么的,但是它的目的就是获得model的几个地址,那么可以直接写死。
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TVRJeE15MHhOakUxT0RNek1EVXVjRzVuLmpwZw%3D%3D.jpg?w=700&webp=1)
修改成这样,特别注意输入的灰色图像要转换成3通道。
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TVRjek5TMHhOelkwTVRBMk1ESXpMbXB3Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TWpRMk1pMHhPRGd6T0RJME1qSXhMbXB3Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TXpJM01pMHlNamt4TURNMU1EZ3VhbkJuLmpwZw%3D%3D.jpg?w=700&webp=1)
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TkRJM05TMHlOakEyTmpVMk16Z3VhbkJuLmpwZw%3D%3D.jpg?w=700&webp=1)
总的来说,应该是由于训练的关系:在自然场景下的效果要比室内的好;自然的比人工的好。
这个非常有趣,下一步可以在特定领域下的训练;不同模型的替换上面下功夫。
疑问:算法是怎样推断出猫的颜色的了?
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TlRJMU55MDBNREV6T0RnM09Ea3VhbkJuLmpwZw%3D%3D.jpg?w=700&webp=1)
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TlRZME5pMHhOekkyTXpVd016SXpMbXB3Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
嘿嘿,瞎搞一下
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TmpFMU9DMHhNREk0TVRjeU9UQXhMbXB3Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
幽灵猫,对了,给动漫配色如何?
![OpenCV自带dnn的Example研究(2)— colorization OpenCV自带dnn的Example研究(2)— colorization](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4MU1EZzBPRGt2TWpBeE9UQTBMelV3T0RRNE9TMHlNREU1TURReU56RTBNVEl5TmpjeE55MHhOekV4TVRVMU1UazBMbXB3Wnc9PS5qcGc%3D.jpg?w=700&webp=1)
差强人意呀,但是如果专门使用动漫的数据集才进行训练,会不会好一些?