08 2020 档案

摘要:live555为单线程执行,直接执行sleep(),会导致消息接受函数得不到执行,而且会停止所有的工作。 如何在等待的同时,可以进行其他的工作 在live555中使用env->taskScheduler().doEventLoop()进行消息等待。 void BasicTaskScheduler0: 阅读全文
posted @ 2020-08-31 11:37 cyssmile 阅读(762) 评论(0) 推荐(0)
摘要:实验目的: 理解朴素贝叶斯分类器的原理; 能够独立实现贝叶斯分类器的设计; 能够评估分类器的精度。 实验步骤: 1.朴素贝叶斯分类器原理理解 贝叶斯决策理论 假设有一个数据集,由两类组成,对于每个样本分类如下: 现在有一个新的点new_point(x,y),其分类未知。用p1(x,y)表示点(x,y 阅读全文
posted @ 2020-08-28 09:48 cyssmile 阅读(1619) 评论(0) 推荐(0)
摘要:分类:通常图像分类并没有什么用处,只是得出一张图片里面有什么。 定位+分类:知道图片中有个什么,也把这个物体定位出来了,但是也没啥用,因为日常生活中一张图片中可能有多个物体。 物体检测:做到这一步在实际中就有用处了。 IOU(交并比) 用于衡量定位的准确度, 一般IOU >= 0.5 可认为定位成功 阅读全文
posted @ 2020-08-27 20:34 cyssmile 阅读(6789) 评论(0) 推荐(0)
摘要:* 1 对卷积神经网络的研究可追溯到1979和1980年日本学者福岛邦彦发表的论文和“neocognition”神经网络。 * 2 AlexNet使用卷积神经网络解决图像分类问题,在ILSVR2012中获胜并大大提升了state-of-start的准确率(大概16%左右)。(在11年top5的错误率 阅读全文
posted @ 2020-08-27 17:12 cyssmile 阅读(6447) 评论(0) 推荐(0)
摘要:#include <iostream> #include <string> #include <ifaddrs.h> #include <arpa/inet.h> #include <netdb.h> std::string GetIp() { void *tmpAddrPtr = NULL; st 阅读全文
posted @ 2020-08-27 14:50 cyssmile 阅读(181) 评论(0) 推荐(0)
摘要:相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:int readlink(const char *path, char *buf, size_t bufsiz); 函数说明:readlink()会将参数path的符号连接内容到参数b 阅读全文
posted @ 2020-08-27 14:34 cyssmile 阅读(404) 评论(0) 推荐(0)
摘要:关于这个东西,网上的教程真的太多了。这里我记录一个我觉得勉强有意思的,理解从理解函数指针到回调函数的过程。回调函数可以做很多东西,比如实现工厂模式,反射机制啊,某些种类的单例模式都可能用到。 反正挺无聊的。 1.理解函数指针 比如我要定义一个返回值为int 参数为(int, void*)的函数指针, 阅读全文
posted @ 2020-08-20 16:41 cyssmile 阅读(181) 评论(0) 推荐(0)
摘要:####1.lambda函数捕获 lambda函数捕获分值捕获和引用捕获 采用值捕获的前提是变量可以拷贝,与参数不同的是被捕获的变量的值是在lambda创建的时候拷贝的,被捕获的变量的值,不会随着改变变量在函数内后面的改变而改变。 void func(){ size_t v1 = 42; auto 阅读全文
posted @ 2020-08-13 16:00 cyssmile 阅读(1537) 评论(0) 推荐(0)
摘要:两者都是把地址传到函数中,都可以对传入的指针指向的值进行修改。不同点*&还能改变指针的指向。 下面一段程序测试*&还能改变针的指向 #include<iostream> struct point{ //int x; //int y; }; void changeNum1(point *&num_pt 阅读全文
posted @ 2020-08-12 16:06 cyssmile 阅读(2167) 评论(0) 推荐(0)
摘要:今天遇到这样一个问题,就是函数的一个参数类似这样的 vector<int> *p 。开始还觉得有点怪怪的。 其实是这边项目中有个代码规范,如果传引用,就要一定要使用const进行修饰,为了能够在函数类能够修改传入的东西 所以就传入了一个类似vector< int > *p的指针。 其实对与p中的元素 阅读全文
posted @ 2020-08-11 11:59 cyssmile 阅读(207) 评论(0) 推荐(0)
摘要:今天自己用CMake搭建一个项目时,其中用到了多线程 在make的时候报了 undefined reference to `pthread_create'这个错误,网上很多都是说lpthread 不是linux下默认的库之类的。 只需要在编译的时候加上-lpthread参数。虽然可以解决问题,但是这 阅读全文
posted @ 2020-08-11 10:30 cyssmile 阅读(3179) 评论(0) 推荐(0)
摘要:1.首先修改本机/etc/hosts文件 添加类似这样的,前面的是IP,IP可以通过ifconfig 查看 ,后面的分别是本机和服务器端的主机名 192.168.82.129 localhostname 192.168.64.21 serverhostname 2.生成公私钥对 cd ~/.ssh 阅读全文
posted @ 2020-08-04 16:44 cyssmile 阅读(273) 评论(0) 推荐(0)
摘要:使用条件变量的最经典的场景就是生产者和消费者 1.最普通的生产者和消费者代码 #include<iostream> #include<deque> #include<thread> #include<mutex> #include<functional> using namespace std; s 阅读全文
posted @ 2020-08-02 23:03 cyssmile 阅读(280) 评论(0) 推荐(0)
摘要:1.一般的lock()和unlock() 一般的我们会写出这样的代码 std::mutex mu; mu.lock(); //.... mu.unlock() 这种方式我们是希望//...中间执行,保证只有有个线程进入临界区,但是这里存在一个问题,就是如果线程在临界区发生错误或者return,导致m 阅读全文
posted @ 2020-08-02 21:45 cyssmile 阅读(1090) 评论(0) 推荐(0)
摘要:在多线程的代码中,有时候有些操作只需要执行一次,比如fstream中打开文件open() 首先是不使用once_flag解决这种问题的缺陷和改进 1.示例代码的问题 #include<iostream> #include<thread> #include<mutex> #include<string 阅读全文
posted @ 2020-08-02 16:49 cyssmile 阅读(432) 评论(0) 推荐(0)
摘要:c++多线程中死锁多出现在使用多个mutex,而mutex的顺序不一样。比如下面的代码为了保证输出的原子性,在两个输出的函数中使用了两个mutex 但是这两个mutex锁的顺序是不一样的,结果就造成了死锁。 #include<iostream> #include<thread> #include<m 阅读全文
posted @ 2020-08-02 15:48 cyssmile 阅读(1331) 评论(0) 推荐(0)