使用svm进行蚊子识别

来源:互联网 发布:excel公开课数据分析 编辑:程序博客网 时间:2024/05/20 02:28
# -*- coding:utf-8 -*-'''@finish time:20170915@author;fengjiexybthis is a file that train and test LCD digitthe dataset is minethe result is 95.05%'''import loggingimport matplotlib.pyplot as pltimport numpy as npimport osimport pickleimport randomimport structfrom PCV.tools import imtoolsfrom PIL import Imagefrom svmutil import *import cv2Isize=75#read  datasetdef load_data(path):    files=os.listdir(path)    features=[]    label = []    for index in files:        #img = Image.open(path + index)        img = cv2.imread(path+index)        if img is not None:            res = cv2.resize(img, (Isize, Isize), interpolation=cv2.INTER_AREA)            im=cv2.cvtColor(res,cv2.COLOR_BGR2GRAY)            #im = np.array(img.resize((50, 50)).convert('L'))            im=np.reshape(im, Isize*Isize)            features.append(im)            if int(index[0])==2:                label.append(1)            elif int(index[0])==3:                label.append(1)            else:                label.append(int(index[0]))        else:            print index    return np.array(features),label,files#add loglogging.basicConfig(level=logging.DEBUG,                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',                    datefmt='%a, %d %b %Y %H:%M:%S',                    filename='myapp.log',                    filemode='w')# read train datafeatures,labels,trainfiles = load_data('C:/Users/fengjiexyb/Desktop/train/')# read test datatest_features,test_labels,testfiles = load_data('C:/Users/fengjiexyb/Desktop/test/')# train SVM classifierfeatures = map(list,features)test_features = map(list,test_features)prob = svm_problem(labels,features)param = svm_parameter('-t 0')m = svm_train(prob,param)# test reslutres = svm_predict(test_labels,test_features,m)for  i in xrange(109):    if abs(test_labels[i]-res[0][i])>0.5:            print testfiles[i],test_labels[i],res[0][i]

数据集是自己做的,总计700+张蚊子,100+苍蝇、蚂蚁等图片作为训练。

识别结果


Accuracy = 78.4946% (73/93) (classification)
precision=77.3%
recall=98.5%
F value=86.6

原创粉丝点击