dlib中包含哪些生活中的数学模型举例

2009高教社杯全国大学生数学建模竞赛
根据出院时间我们可以根据我们的模型安排102位门诊过的病人入院,具体情况如下表3,
问题四:若该住院部周六、周日不安排手术,我们安排病人入院的时间就可以通过小部分向后推的方式向后延伸,我们调整后得到了102位病人的手术时间如下表4
根据题目提供的资料,单独一种病的病人从手术到出院这段时间是恒定的,唯一可以缩短的就是病人从门诊到入院和入院到手术的这段时间。我们假定白内障手术平均需要准备1.5天,外伤手术需要准备时间为1天,视网膜疾病及青光眼需要手术准备时间平均为2.5天。
根据公式:该病种的住院时间占总的病人的住院时间的比例=该病种所有病人的住院时间/所有病人的住院时间
于是我们求出数据,如下表5
表5:由题目给的附录经过利用公式计算得到
各病病人总数
各病人平均住院天数(天)
病人住院总天数(天)
各病所得床位数(个)
视网膜疾病
白内障(双眼)
7.模型的评价和改进
对模型的评价
在模型的建立过程中我们很好的结合了问题的具体实际说明的情况,通过每个星期是具体时间来分配病床,很好的满足了题目中白内障病人需要在星期一和星期三手术的情况,而且也满足了准备时间,对原方案进行了改进,可以有效的减少排队等待的时间,基本可以满足医院的病人在住院经过手术前的准备阶段就可以手术的情况。
对模型的改进
我们在计算模型中的各种病人的最短占用床位时间的时候,将手术前的只需准备一到两天的情况按照全部取中间值1.5天来计算,将手术前的准备时间为两到三天的情况全部取2.5天来计算病人最低占用床位时间不是很合理。再者就是如果病人需要准备两天或者三天才可以做手术而实际情况是我们在安排的时候可能都少给了一天,这样就让他们等待了很久,根据病人在门诊的时候的实际情况我们可以给那些需要稍多术前准备时间的病人先安排,比如星期六先安排白内障双眼病人需要准备两天的情况,这样就可以将问题得到基本的解决。最后指出的一点是第四问中如果周六周日不安排手术的话,可能对外伤病人产生影响,建议应该适当的安排手术,只是说只安排外伤手术。我们在计算79位病人出院的时间的时候出现了在日之前的情况,因为我们使用的是平均值,所以在情理之中。
8.参考文献
[1]姜启源,数学模型,北京:高等教育出版社,2004年
[2]刘承平& 数学建模方法&
北京:高等教育出版社,2002年
[3] 高隆昌& 杨元著&
数学建模基础理论&&&
科学出版社& 2007.7
[4] 李志林,欧宜贵, 数学建模及典型案例分析 北京:化学工业出版社,2006年
http://www.dlib.edu.cnki.net/kns50/detail.aspx?filename=JTYY&dbname=CJFD1997
经过统计我们得出了在每个星期内五种病人的具体分布情况作为我们下面分析的参考。
外伤(人)
视网膜疾病(人)
青光眼(人)
白内障(双眼)(人)
白内障(单眼)(人)
第一个星期
第二个星期
第三个星期
第四个星期
第五个星期
第六个星期
第七个星期
第八个星期
附录2& 每天出院的病人的统计表
我们在各种病当中随机抽取39个病人作为样本,编号为1号到39号。以天数为竖轴,以病人编号为横轴,画波动图如下表3:
系列一为外伤病人、系列二为视网膜疾病病人、系列三为青光眼病人、系列四为白内障(双眼)、系列五为白内障(单眼)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。dlib中包含哪些数学模型? - 知乎3被浏览38分享邀请回答0添加评论分享收藏感谢收起40行代码的人脸识别实践
40行代码的人脸识别实践
很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了。这些人里包括曾经的我自己。其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。
对于大部分人来说,区分人脸检测和人脸识别完全不是问题。但是网上有很多教程有无无意地把人脸检测说成是人脸识别,误导群众,造成一些人认为二者是相同的。其实,人脸检测解决的问题是确定一张图上有木有人脸,而人脸识别解决的问题是这个脸是谁的。可以说人脸检测是是人识别的前期工作。今天我们要做的是人脸识别。
Anaconda 2——Python 2
scikit-image
对于今天要用到的主要工具,还是有必要多说几句的。Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。就像很多库一样,Dlib也提供了Python的接口,安装非常简单,用pip只需要一句即可:
pip install dlib
上面需要用到的scikit-image同样只是需要这么一句:
pip install scikit-image
注:如果用pip install dlib安装失败的话,那安装起来就比较麻烦了。错误提示很详细,按照错误提示一步步走就行了。
之所以用Dlib来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。今天我们主要目的是实现,而不是深究原理。感兴趣的同学可以到官网查看源码以及实现的参考文献。今天的例子既然代码不超过40行,其实是没啥难度的。有难度的东西都在源码和论文里。
首先先通过文件树看一下今天需要用到的东西:
准备了六个候选人的图片放在candidate-faces文件夹中,然后需要识别的人脸图片test.jpg。我们的工作就是要检测到test.jpg中的人脸,然后判断她到底是候选人中的谁。另外的girl-face-rec.py是我们的python脚本。shape_predictor_68_face_landmarks.dat是已经训练好的人脸关键点检测器。dlib_face_recognition_resnet_model_v1.dat是训练好的ResNet人脸识别模型。ResNet是何凯明在微软的时候提出的深度残差网络,获得了 ImageNet 2015 冠军,通过让网络对残差进行学习,在深度和精度上做到了比
CNN 更加强大。
1. 前期准备
shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat都可以在找到。不能点击超链接的可以直接输入以下网址:。
然后准备几个人的人脸图片作为候选人脸,最好是正脸。放到candidate-faces文件夹中。
本文这里准备的是六张图片,如下:
她们分别是
然后准备四张需要识别的人脸图像,其实一张就够了,这里只是要看看不同的情况:
可以看到前两张和候选文件中的本人看起来还是差别不小的,第三张是候选人中的原图,第四张图片微微侧脸,而且右侧有阴影。
2.识别流程
数据准备完毕,接下来就是代码了。识别的大致流程是这样的:
先对候选人进行人脸检测、关键点提取、描述子生成后,把候选人描述子保存起来。
然后对测试人脸进行人脸检测、关键点提取、描述子生成。
最后求测试图像人脸描述子和候选人脸描述子之间的欧氏距离,距离最小者判定为同一个人。
代码不做过多解释,因为已经注释的非常完善了。以下是girl-face-rec.py
import sys,os,dlib,glob,numpy
from skimage import io
if len(sys.argv) != 5:
print "请检查参数是否正确"
predictor_path = sys.argv[1]
face_rec_model_path = sys.argv[2]
faces_folder_path = sys.argv[3]
img_path = sys.argv[4]
detector = dlib.get_frontal_face_detector()
sp = dlib.shape_predictor(predictor_path)
facerec = dlib.face_recognition_model_v1(face_rec_model_path)
descriptors = []
for f in glob.glob(os.path.join(faces_folder_path, "*.jpg")):
print("Processing file: {}".format(f))
img = io.imread(f)
dets = detector(img, 1)
print("Number of faces detected: {}".format(len(dets)))
for k, d in enumerate(dets):
shape = sp(img, d)
face_descriptor = facerec.compute_face_descriptor(img, shape)
v = numpy.array(face_descriptor)
descriptors.append(v)
img = io.imread(img_path)
dets = detector(img, 1)
for k, d in enumerate(dets):
shape = sp(img, d)
face_descriptor = facerec.compute_face_descriptor(img, shape)
d_test = numpy.array(face_descriptor)
for i in descriptors:
dist_ = numpy.linalg.norm(i-d_test)
dist.append(dist_)
candidate = ['Unknown1','Unknown2','Shishi','Unknown4','Bingbing','Feifei']
c_d = dict(zip(candidate,dist))
cd_sorted = sorted(c_d.iteritems(), key=lambda d:d[1])
print "\n The person is: ",cd_sorted[0][0]
dlib.hit_enter_to_continue()
4.运行结果
我们在.py所在的文件夹下打开命令行,运行如下命令
python girl-face-rec.py 1.dat 2.dat ./candidate-faces test1.jpg
由于shape_predictor_68_face_landmarks.dat和dlib_face_recognition_resnet_model_v1.dat名字实在太长,所以我把它们重命名为1.dat和2.dat。
运行结果如下:
The person is Bingbing。
记忆力不好的同学可以翻上去看看test1.jpg是谁的图片。有兴趣的话可以把四张测试图片都运行下试试。
这里需要说明的是,前三张图输出结果都是非常理想的。但是第四张测试图片的输出结果是候选人4。对比一下两张图片可以很容易发现混淆的原因。
机器毕竟不是人,机器的智能还需要人来提升。
有兴趣的同学可以继续深入研究如何提升识别的准确率。比如每个人的候选图片用多张,然后对比和每个人距离的平均值之类的。全凭自己了。
除了平时发文章之外,也会发一些平时学习过程中其他的参考资料和代码,欢迎加入。
没有更多推荐了,
不良信息举报
举报内容:
40行代码的人脸识别实践
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Dlib 实现人脸的68点检测
时间: 19:35:58
&&&& 阅读:354
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&Dlib实现68点标定
效果图展示:
主要是通过68点的模型进行提取脸部的68点的特征值。(相应细节都已经注释)
#include &dlib\opencv.h&
#include &opencv2\opencv.hpp&
#include &dlib\image_processing\frontal_face_detector.h&
#include &dlib\image_processing\render_face_detections.h&
#include &dlib\image_processing.h&
#include &dlib\gui_widgets.h&
using namespace
using namespace std;
int main() {
cv::VideoCapture cap(0);
if (!cap.isOpened()) {
cerr && "Unable to connect to camera" &&
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor pos_
deserialize("shape_predictor_68_face_landmarks.dat") && pos_
while (cv::waitKey(30)!=27)
cv_image&bgr_pixel& cimg(temp);
std::vector&rectangle& faces = detector(cimg);
std::vector&full_object_detection&
unsigned faceNumber=
faces.size();
for (unsigned i = 0; i & faceN i++)
shapes.push_back(pos_modle(cimg, faces[i]));
if (!shapes.empty()) {
int faceNumber = shapes.size();
for (int j = 0; j & faceN j++)
for (int i = 0; i & 68; i++)
cv::circle(temp, cvPoint(shapes[j].part(i).x(), shapes[j].part(i).y()), 3, cv::Scalar(0, 0, 255), -1);
cv::putText(temp,to_string(i), cvPoint(shapes[0].part(i).x(), shapes[0].part(i).y()), CV_FONT_HERSHEY_PLAIN,1, cv::Scalar(0, 0, 255));
cv::imshow("Dlib标记", temp);
catch (serialization_error &e) {
cout && "You need dlib‘s default face landmarking file to run this example.(你需要添加landmark的bat文件,才可以跑这个实例)" &&
cout && endl && e.what() &&
catch(exception &e){
e.what() &&
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:http://blog.csdn.net/qq_/article/details/
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!追求超越,成功会不期而至。享受过程,结果将水到渠成。
时间:日作者:Admin查看次数:1,721 次评论次数:
消息来源:http://jwc.jsu.edu.cn/jwcweb/Read.asp?id=1535
A题:楼市价格预测
最新数据显示,兰州、丹东等部分二三线城市,已经“取代”一线城市京沪穗深,房价涨幅领跑全国,如今,“限购令”的大棒已经悬在这些城市头上。二三线城市的房价到底有着怎样的疯狂?急剧攀升的楼价已相当程度地影响了一般市民的购房心理,也改变了不少大学生的就业观念。
请用数据分析6年来您所居住或熟悉的城市的房价变化情况,结合当地的经济指标,您认为应该采取哪里措施才能使楼市健康发展,回归理性?
参考网站:http://www.stats.gov.cn/tjsj/ndsj/
http://dlib.cnki.net/kns50/
http://www.drcnet.com.cn 点击宏观经济
再点击运行数据或数据平台或旧库数据平台
http://chinese.wsj.com/gb/index.asp
再点击经济数据
http://news.hexun.com/ 点击宏观数据
附件中有部分逐月经济运行数据,供参考。
本题需要增加部分经济数据。
B题:理财产品问题
每年银行都会推出各式各样的理财产品吸引投资者,最近,银行推出一款名为“黄金十年”的保险理财产品,它以1000元/份销售,利润分配方式举例如下:如果客户购买三份即每年交3000元,共交10年;每年返回300元,返回15次=4500元;15年到期后,领3万元本金+10倍累计红利+终了红利;另外还有意外保障:三倍公共交通意外赔付;重大疾病保障:每年多交10元,重大疾病保15年;住院医疗保障:每年多交253元,可享受70%-90%住院医疗报销。累计红利指的是按当年银行活期利率计算的红利。终了红利是银行用客户存款投资所获利润进行分红的钱。
相比各式各样的理财产品,银行储蓄和买债券是普通老百姓理财的主要方式和途径。因此,理财产品的设计,应该考虑到能否吸引老百姓。
1、为什么这款理财产品受到许多人的喜欢?你能解释其中的奥秘吗?请用具体的数学模型说明理由。
2、推出上述理财产品,银行当然是为了盈利,请给对银行的收益、风险以及客户的收益、风险进行分析,并对产品的改进提出意见。
3、对于普通老百姓,请给出在选择理财产品时的一些建议。
声明: 本文采用
协议进行授权 | 转载请注明转自《》
您可能感兴趣的文章
Categories
赛区组委会
各高校数模网站}

我要回帖

更多关于 经济中的数学模型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信