FastRCNN 训练自己数据集(一)——编译配置

  
#1楼   2015-10-20 14:13  lightning16   
demo我都跑通了,现在是想用自己的道路标识进行训练,用什么工具能把这些标识提前出来在annoations呢?
  
#2楼 [ 楼主2015-10-23 00:22  楼燚航的blog   
@ lightning16
你说的应该是原始的GroundTruth,就是目标在图中的位置吧,我当时是自己写的python 和 opencv一个标注小工具
  
#3楼   2015-11-16 16:27  Vict   
cd $FRCN_ROOT
./tools/demo.py
这之前的东西都搞定,但跑demo出问题。
Traceback (most recent call last):
File "./tools/demo.py", line 17, in <module>
from fast_rcnn.config import cfg
File "/home/zhaoyannan/fast-rcnn/tools/../lib/fast_rcnn/__init__.py", line 8, in <module>
from . import config
File "/home/zhaoyannan/fast-rcnn/tools/../lib/fast_rcnn/config.py", line 23, in <module>
from easydict import EasyDict as edict
ImportError: No module named easydict
  
#4楼   2015-11-16 16:28  Vict   
对了我是用cpu配置的caffe,没配置cuda
  
#5楼 [ 楼主2015-11-16 19:05  楼燚航的blog   
@ Vict
我觉得你可能是easydict环境没有配或者是附加模块的路径问题,你在编译的时候Makefile.config下是否添加了相应的python附加包的路径
  
#6楼   2015-11-17 02:17  sunjieee   
博主,我在fast rcnn编译caffe-fast-rcnn出现问题
加上WITH_PYTHON_LAYER = 1就有问题
把这句注释掉就能编译,但跑会有问题
而我尝试最新的caffe同样加上WITH_PYTHON_LAYER = 1却能够编译完成
这是哪里的问题?是boost版本问题吗?
实验室的服务器不敢改,用自己电脑gt750跑的话会要几天吗?
具体报错:
.build_release/lib/libcaffe.so: undefined reference to `boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > > const&)'
.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
Makefile:545: recipe for target '.build_release/tools/device_query.bin' failed
make: *** [.build_release/tools/device_query.bin] Error 1
make: *** Waiting for unfinished jobs....
  
#7楼 [ 楼主2015-11-18 18:49  楼燚航的blog   
@ sunjieee
我之前boost升级也碰到过问题,后来退回到1.55版本,就没有Boost的问题了,你可以试试
  
#8楼   2015-12-28 19:55  野孩子1991   
楼主,可否给下你的selective search的代码,我在网上找的产生的op都不好,对比demo里的检测车辆那个,我的op只能找到两辆车。谢谢。
  
#9楼   2016-01-27 14:52  黄豆豆是小小兵   
博主您好,参照您的博客安装了fast-rcnn,但是在编译caffe和pycaffe时出现了问题,向您请教一下~
.build_release/lib/libcaffe.so:对‘caffe::CuDNNConvolutionLayer<double>::Backward_gpu(std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<caffe::Blob<double>*, std::allocator<caffe::Blob<double>*> > const&)’未定义的引用
谢谢( ^_^ )
  
#10楼 [ 楼主2016-02-19 13:08  楼燚航的blog   
@ 野孩子1991
你可以直接到Fast或者FasterRCNN的Github主页上有相应的链接,跳过去下载就可以了
  
#11楼 [ 楼主2016-02-19 13:09  楼燚航的blog   
@ 黄豆豆是小小兵
你那个cuDNN的编译选项要确保打开哦
  
#12楼   2016-03-09 13:40  keran   
唔,我刚才没编译,但是现在编译出现了大bug呀,求帮助!
In file included from src/caffe/util/cudnn.cpp:2:0:
./include/caffe/util/cudnn.hpp:64:32: 错误: 变量或字段‘createTensor4dDesc’声明为 void
./include/caffe/util/cudnn.hpp:64:32: 错误: ‘cudnnTensorDescriptor_t’在此作用域中尚未声明
./include/caffe/util/cudnn.hpp:64:57: 错误: ‘desc’在此作用域中尚未声明
。。。。。太多了放不下
./include/caffe/util/cudnn.hpp: 在函数‘void caffe::cudnn::setConvolutionDesc(cudnnConvolutionStruct**, int, cudnnFilterDescriptor_t, int, int, int, int)’中:
./include/caffe/util/cudnn.hpp:104:3: 错误: ‘cudnnSetConvolution2dDescriptor’的实参不依赖模板参数,所以‘cudnnSetConvolution2dDescriptor’的声明必须可用 [-fpermissive]
./include/caffe/util/cudnn.hpp:104:3: 附注: (如果您使用‘-fpermissive’,G++ 会接受您的代码,但是允许使用未定义的名称是不建议使用的风格)
./include/caffe/util/cudnn.hpp: 在函数‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’中:
./include/caffe/util/cudnn.hpp:117:13: 错误: ‘CUDNN_POOLING_AVERAGE_COUNT_INCLUDE_PADDING’在此作用域中尚未声明
./include/caffe/util/cudnn.hpp:123:3: 错误: ‘cudnnSetPooling2dDescriptor’的实参不依赖模板参数,所以‘cudnnSetPooling2dDescriptor’的声明必须可用 [-fpermissive]
make: *** [.build_release/src/caffe/util/math_functions.o] 错误 1

谢谢!
  
#13楼   2016-03-30 15:31  雪花扇子   
楼主你好,为什么会出现cannot import name symbol_database
  
#14楼   2016-04-01 18:46  JustJay   
@ 野孩子1991
selective-search提取OP的坐标是[top left bottom right]形式,并且从1开始,demo.py里面OP坐标形式为[left top right bottom],并且从0开始。
所以你需要进行坐标变换:all_proposals=all_proposals[ : , (1,0,3,2)]-1。
我当时也是只能检测出两辆车,后来发现是坐标的问题
  
#15楼   2016-04-01 18:51  JustJay   
@ 雪花扇子
我建议你在make -j8 && make pycaffe 之后从上到下依次查找error。很多问题是没有安装库文件。google相应error之后 sudo apt-get install 相应的库 就好啦!
  
#16楼   2016-04-01 18:58  雪花扇子   
@ JustJay
谢谢!那个问题以及解决了。我看了demo发现不仅有图片还有.mat的数据文件,那在在测试的时候是不是还得准备测试图片的.mat文件。这样我随便拿一张图片来做测试不就不能测试吗?
  
#17楼   2016-04-01 19:04  JustJay   
@ 雪花扇子
是这样的,如果你需要测试自己的图片就要提取Object Proposal,也就是那个生成的.mat文件。我目前用的是selective-search提取的,Edge-Boxes还没有调好。不过你要非常注意坐标问题,正如博主提到的一样。
  
#18楼   2016-04-01 19:10  雪花扇子   
@ JustJay
那我如果是实际用呢?就比如像博主那样要对道路上的车辆进行检测,那是不是要把视频每帧经过 selective-search 提取出 Object Proposal生成.mat文件然后和每帧图片本身传到模型做检测啊。这样的话有点麻烦
  
#19楼   2016-04-01 19:16  JustJay   
@ 雪花扇子
我是初学caffe,现在还只是进行到检测自己的图片阶段,甚至还没有开始训练自己的数据集:(,不过你说的这个问题我不久会着手研究,如果你有什么进展,希望可以互相交流切磋!!!
  
#20楼   2016-04-01 19:21  雪花扇子   
@ JustJay
我也是出学,只是在跑demo的时候发现这个问题,多多交流
  
#21楼   2016-04-05 10:33  野孩子1991   
@ JustJay
非常感谢,我现在着手正在搞别的,等过段时间再搞一下试试。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,Fast R-CNN模型是针对目标检测任务而开发的,而CIFAR-10是一个图像分类数据集,因此Fast R-CNN模型不适用于CIFAR-10数据集的分类任务。对于CIFAR-10数据集的分类任务,可以使用卷积神经网络(CNN)模型进行分类,以下是一个使用Keras实现的CNN模型的示例代码: ```python import keras from keras.datasets import cifar10 from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D # 加载数据集 (x_train, y_train), (x_test, y_test) = cifar10.load_data() # 将标签转换为独热编码 y_train = keras.utils.to_categorical(y_train, 10) y_test = keras.utils.to_categorical(y_test, 10) # 构建CNN模型 model = Sequential() model.add(Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=x_train.shape[1:])) model.add(Conv2D(32, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(64, (3, 3), padding='same', activation='relu')) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(512, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation='softmax')) # 编译模型 model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, batch_size=64, epochs=10, validation_data=(x_test, y_test)) # 评估模型 score = model.evaluate(x_test, y_test, verbose=0) print('Test loss:', score[0]) print('Test accuracy:', score[1]) ``` 这个示例代码使用了两个卷积层和两个池化层,以及两个全连接层,用于对CIFAR-10数据集进行分类。您可以根据需要对模型结构进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值