Amazing-Python-Scripts

Форк
0
77 строк · 1.8 Кб
1
# *^_^* coding:utf-8 *^_^*
2

3
"""
4
Smoke detection based on SVM and HOG
5
"""
6

7
__author__ = 'stone'
8
__date__ = '15-11-13'
9

10
import os
11
import cv2
12
import numpy as np
13

14
train_dir = '../medias/smoke/positive'
15
test_dir = '../medias/smoke/test'
16
svm_params = dict(kernel_type=cv2.ml.SVM_LINEAR,
17
                  svm_type=cv2.ml.SVM_C_SVC,
18
                  C=2.67, gamma=5.385)
19

20

21
def image_path(path):
22
    files = os.listdir(path)
23
    img_path = []
24

25
    for name in files:
26
        fullname = os.path.join(path, name)
27
        img_path.append(fullname)
28

29
    return img_path
30

31

32
def hog_feature(path):
33
    img = cv2.imread(path)
34
    padding = (8, 8)
35
    block_stride = (8, 8)
36
    descriptor = cv2.HOGDescriptor()
37
    hog = descriptor.compute(img, block_stride, padding)
38
    return hog
39

40

41
if __name__ == '__main__':
42
    print __doc__
43

44
    train_image = image_path(train_dir)
45
    test_image = image_path(test_dir)
46
    response = [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1]
47
    print(response)
48
    response = np.array(response)
49
    train_data = train_image[:]
50
    train_hog = []
51
    for img in train_data:
52
        hog = hog_feature(img)
53
        print 'hog_values'
54
        print hog
55
        print '\n'
56
        train_hog.append(hog)
57
    # np.savetxt('0.1hog_train.txt', train_hog)
58
    test_hog = []
59
    print test_image
60
    for img in test_image:
61
        hog = hog_feature(img)
62
        test_hog.append(hog)
63
    # np.savetxt('0.1hog_test.txt', test_hog)
64

65
    train_hog = np.float32(train_hog)
66
    test_hog = np.float32(test_hog)
67

68
    svm = cv2.ml.SVM_create()
69
    svm.setGamma(0.5)
70
    svm.setC(1)
71
    svm.setKernel(cv2.ml.SVM_RBF)
72
    svm.setType(cv2.ml.SVM_C_SVC)
73
    print(train_hog)
74
    svm.train(train_hog, cv2.ml.ROW_SAMPLE, response)
75
    print(svm.isTrained())
76
    result = svm.predict(test_hog)
77
    print result
78

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.