Browse Source

compatible with python3

tags/v0.5-sensible
kkkim 7 years ago
parent
commit
f81bc4ea08
37 changed files with 13013 additions and 134 deletions
  1. +12880
    -0
      anno_store/wider_origin_anno.txt
  2. +0
    -0
      dface/__init__.py
  3. +0
    -0
      dface/config.py
  4. +0
    -0
      dface/core/__init__.py
  5. +3
    -3
      dface/core/detect.py
  6. +0
    -0
      dface/core/image_reader.py
  7. +0
    -0
      dface/core/image_tools.py
  8. +0
    -0
      dface/core/imagedb.py
  9. +0
    -0
      dface/core/models.py
  10. +0
    -0
      dface/core/nms.py
  11. +2
    -0
      dface/core/resnet_inception_v2.py
  12. +0
    -0
      dface/core/roc.py
  13. +0
    -0
      dface/core/utils.py
  14. +0
    -0
      dface/core/vision.py
  15. +0
    -0
      dface/prepare_data/__init__.py
  16. +0
    -0
      dface/prepare_data/assemble.py
  17. +1
    -1
      dface/prepare_data/assemble_onet_imglist.py
  18. +1
    -1
      dface/prepare_data/assemble_pnet_imglist.py
  19. +1
    -1
      dface/prepare_data/assemble_rnet_imglist.py
  20. +6
    -6
      dface/prepare_data/gen_Onet_train_data.py
  21. +2
    -4
      dface/prepare_data/gen_Pnet_train_data.py
  22. +6
    -6
      dface/prepare_data/gen_Rnet_train_data.py
  23. +2
    -2
      dface/prepare_data/gen_landmark_12.py
  24. +2
    -2
      dface/prepare_data/gen_landmark_24.py
  25. +2
    -2
      dface/prepare_data/gen_landmark_48.py
  26. +6
    -6
      dface/prepare_data/gen_landmark_net_48.py
  27. +0
    -0
      dface/prepare_data/widerface_annotation_gen/.keep
  28. +46
    -46
      dface/prepare_data/widerface_annotation_gen/transform.py
  29. +0
    -0
      dface/prepare_data/widerface_annotation_gen/wider_face_train.mat
  30. +42
    -42
      dface/prepare_data/widerface_annotation_gen/wider_loader.py
  31. +0
    -0
      dface/train_net/__init__.py
  32. +3
    -3
      dface/train_net/train.py
  33. +2
    -2
      dface/train_net/train_o_net.py
  34. +2
    -2
      dface/train_net/train_p_net.py
  35. +2
    -2
      dface/train_net/train_r_net.py
  36. +0
    -0
      src/train_net/__init__.py
  37. +2
    -3
      test_image.py

+ 12880
- 0
anno_store/wider_origin_anno.txt
File diff suppressed because it is too large
View File


__init__.py → dface/__init__.py View File


src/config.py → dface/config.py View File


src/__init__.py → dface/core/__init__.py View File


src/core/detect.py → dface/core/detect.py View File

@@ -3,9 +3,9 @@ import time
import numpy as np
import torch
from torch.autograd.variable import Variable
from models import PNet,RNet,ONet
import utils as utils
import image_tools
from dface.core.models import PNet,RNet,ONet
import dface.core.utils as utils
import dface.core.image_tools as image_tools


def create_mtcnn_net(p_model_path=None, r_model_path=None, o_model_path=None, use_cuda=True):

src/core/image_reader.py → dface/core/image_reader.py View File


src/core/image_tools.py → dface/core/image_tools.py View File


src/core/imagedb.py → dface/core/imagedb.py View File


src/core/models.py → dface/core/models.py View File


src/core/nms.py → dface/core/nms.py View File


src/core/resnet_inception_v2.py → dface/core/resnet_inception_v2.py View File

@@ -256,6 +256,7 @@ class InceptionResnetV2(nn.Module):
self.conv2d_7b = BasicConv2d(2080, 1536, kernel_size=1, stride=1)
self.avgpool_1a = nn.AvgPool2d(8, count_include_pad=False)
self.classif = nn.Linear(1536, num_classes)
self.dropout = nn.Dropout(p=0.8)

def forward(self, x):
x = self.conv2d_1a(x)
@@ -275,5 +276,6 @@ class InceptionResnetV2(nn.Module):
x = self.conv2d_7b(x)
x = self.avgpool_1a(x)
x = x.view(x.size(0), -1)
x = self.dropout(x)
x = self.classif(x)
return x

src/core/roc.py → dface/core/roc.py View File


src/core/utils.py → dface/core/utils.py View File


src/core/vision.py → dface/core/vision.py View File


src/core/__init__.py → dface/prepare_data/__init__.py View File


src/prepare_data/assemble.py → dface/prepare_data/assemble.py View File


src/prepare_data/assemble_onet_imglist.py → dface/prepare_data/assemble_onet_imglist.py View File

@@ -1,5 +1,5 @@
import os
import config
import dface.config as config
import assemble as assemble



src/prepare_data/assemble_pnet_imglist.py → dface/prepare_data/assemble_pnet_imglist.py View File

@@ -1,5 +1,5 @@
import os
import config
import dface.config as config
import assemble as assemble



src/prepare_data/assemble_rnet_imglist.py → dface/prepare_data/assemble_rnet_imglist.py View File

@@ -1,5 +1,5 @@
import os
import config
import dface.config as config
import assemble as assemble



src/prepare_data/gen_Onet_train_data.py → dface/prepare_data/gen_Onet_train_data.py View File

@@ -2,15 +2,15 @@ import argparse

import cv2
import numpy as np
from core.detect import MtcnnDetector,create_mtcnn_net
from core.imagedb import ImageDB
from core.image_reader import TestImageLoader
from dface.core.detect import MtcnnDetector,create_mtcnn_net
from dface.core.imagedb import ImageDB
from dface.core.image_reader import TestImageLoader
import time
import os
import cPickle
from core.utils import convert_to_square,IoU
import config
import core.vision as vision
from dface.core.utils import convert_to_square,IoU
import dface.config
import dface.core.vision as vision

def gen_onet_data(data_dir, anno_file, pnet_model_file, rnet_model_file, prefix_path='', use_cuda=True, vis=False):


src/prepare_data/gen_Pnet_train_data.py → dface/prepare_data/gen_Pnet_train_data.py View File

@@ -3,10 +3,8 @@ import numpy as np
import cv2
import os
import numpy.random as npr
from core.utils import IoU
import config


from dface.core.utils import IoU
import dface.config as config

def gen_pnet_data(data_dir,anno_file):


src/prepare_data/gen_Rnet_train_data.py → dface/prepare_data/gen_Rnet_train_data.py View File

@@ -3,15 +3,15 @@ import argparse

import cv2
import numpy as np
from core.detect import MtcnnDetector,create_mtcnn_net
from core.imagedb import ImageDB
from core.image_reader import TestImageLoader
from dface.core.detect import MtcnnDetector,create_mtcnn_net
from dface.core.imagedb import ImageDB
from dface.core.image_reader import TestImageLoader
import time
import os
import cPickle
from core.utils import convert_to_square,IoU
import config
import core.vision as vision
from dface.core.utils import convert_to_square,IoU
import dface.config as config
import dface.core.vision as vision

def gen_rnet_data(data_dir, anno_file, pnet_model_file, prefix_path='', use_cuda=True, vis=False):


src/prepare_data/gen_landmark_12.py → dface/prepare_data/gen_landmark_12.py View File

@@ -5,8 +5,8 @@ import numpy as np
import sys
import numpy.random as npr
import argparse
import config
import core.utils as utils
import dface.config as config
import dface.core.utils as utils


def gen_data(anno_file, data_dir, prefix):

src/prepare_data/gen_landmark_24.py → dface/prepare_data/gen_landmark_24.py View File

@@ -6,8 +6,8 @@ import random
import sys
import numpy.random as npr
import argparse
import config
import core.utils as utils
import dface.config as config
import dface.core.utils as utils




src/prepare_data/gen_landmark_48.py → dface/prepare_data/gen_landmark_48.py View File

@@ -6,8 +6,8 @@ import random
import sys
import numpy.random as npr
import argparse
import config
import core.utils as utils
import dface.config as config
import dface.core.utils as utils


def gen_data(anno_file, data_dir, prefix):

src/prepare_data/gen_landmark_net_48.py → dface/prepare_data/gen_landmark_net_48.py View File

@@ -2,15 +2,15 @@ import argparse

import cv2
import numpy as np
from core.detect import MtcnnDetector,create_mtcnn_net
from core.imagedb import ImageDB
from core.image_reader import TestImageLoader
from dface.core.detect import MtcnnDetector,create_mtcnn_net
from dface.core.imagedb import ImageDB
from dface.core.image_reader import TestImageLoader
import time
import os
import cPickle
from core.utils import convert_to_square,IoU
import config
import core.vision as vision
from dface.core.utils import convert_to_square,IoU
import dface.config as config
import dface.core.vision as vision

def gen_landmark48_data(data_dir, anno_file, pnet_model_file, rnet_model_file, prefix_path='', use_cuda=True, vis=False):


src/prepare_data/widerface_annotation_gen/.keep → dface/prepare_data/widerface_annotation_gen/.keep View File


src/prepare_data/widerface_annotation_gen/transform.py → dface/prepare_data/widerface_annotation_gen/transform.py View File

@@ -1,46 +1,46 @@
from wider_loader import WIDER
import cv2
import time
#wider face original images path
path_to_image = '/idata/data/wider_face/WIDER_train/images'
#matlab file path
file_to_label = './wider_face_train.mat'
#target file path
target_file = './anno.txt'
wider = WIDER(file_to_label, path_to_image)
line_count = 0
box_count = 0
print 'start transforming....'
t = time.time()
with open(target_file, 'w+') as f:
# press ctrl-C to stop the process
for data in wider.next():
line = []
line.append(str(data.image_name))
line_count += 1
for i,box in enumerate(data.bboxes):
box_count += 1
for j,bvalue in enumerate(box):
line.append(str(bvalue))
line.append('\n')
line_str = ' '.join(line)
f.write(line_str)
st = time.time()-t
print 'end transforming'
print 'spend time:%ld'%st
print 'total line(images):%d'%line_count
print 'total boxes(faces):%d'%box_count
from wider_loader import WIDER
import cv2
import time
#wider face original images path
path_to_image = '/idata/data/wider_face/WIDER_train/images'
#matlab file path
file_to_label = './wider_face_train.mat'
#target file path
target_file = './anno.txt'
wider = WIDER(file_to_label, path_to_image)
line_count = 0
box_count = 0
print 'start transforming....'
t = time.time()
with open(target_file, 'w+') as f:
# press ctrl-C to stop the process
for data in wider.next():
line = []
line.append(str(data.image_name))
line_count += 1
for i,box in enumerate(data.bboxes):
box_count += 1
for j,bvalue in enumerate(box):
line.append(str(bvalue))
line.append('\n')
line_str = ' '.join(line)
f.write(line_str)
st = time.time()-t
print 'end transforming'
print 'spend time:%ld'%st
print 'total line(images):%d'%line_count
print 'total boxes(faces):%d'%box_count

src/prepare_data/widerface_annotation_gen/wider_face_train.mat → dface/prepare_data/widerface_annotation_gen/wider_face_train.mat View File


src/prepare_data/widerface_annotation_gen/wider_loader.py → dface/prepare_data/widerface_annotation_gen/wider_loader.py View File

@@ -1,42 +1,42 @@
import h5py
import os
class DATA(object):
def __init__(self, image_name, bboxes):
self.image_name = image_name
self.bboxes = bboxes
class WIDER(object):
def __init__(self, file_to_label, path_to_image):
self.file_to_label = file_to_label
self.path_to_image = path_to_image
self.f = h5py.File(file_to_label, 'r')
self.event_list = self.f.get('event_list')
self.file_list = self.f.get('file_list')
self.face_bbx_list = self.f.get('face_bbx_list')
def next(self):
for event_idx, event in enumerate(self.event_list.value[0]):
directory = self.f[event].value.tostring().decode('utf-16')
for im_idx, im in enumerate(
self.f[self.file_list.value[0][event_idx]].value[0]):
im_name = self.f[im].value.tostring().decode('utf-16')
face_bbx = self.f[self.f[self.face_bbx_list.value
[0][event_idx]].value[0][im_idx]].value
bboxes = []
for i in range(face_bbx.shape[1]):
xmin = int(face_bbx[0][i])
ymin = int(face_bbx[1][i])
xmax = int(face_bbx[0][i] + face_bbx[2][i])
ymax = int(face_bbx[1][i] + face_bbx[3][i])
bboxes.append((xmin, ymin, xmax, ymax))
yield DATA(os.path.join(self.path_to_image, directory,
im_name + '.jpg'), bboxes)
import h5py
import os
class DATA(object):
def __init__(self, image_name, bboxes):
self.image_name = image_name
self.bboxes = bboxes
class WIDER(object):
def __init__(self, file_to_label, path_to_image):
self.file_to_label = file_to_label
self.path_to_image = path_to_image
self.f = h5py.File(file_to_label, 'r')
self.event_list = self.f.get('event_list')
self.file_list = self.f.get('file_list')
self.face_bbx_list = self.f.get('face_bbx_list')
def next(self):
for event_idx, event in enumerate(self.event_list.value[0]):
directory = self.f[event].value.tostring().decode('utf-16')
for im_idx, im in enumerate(
self.f[self.file_list.value[0][event_idx]].value[0]):
im_name = self.f[im].value.tostring().decode('utf-16')
face_bbx = self.f[self.f[self.face_bbx_list.value
[0][event_idx]].value[0][im_idx]].value
bboxes = []
for i in range(face_bbx.shape[1]):
xmin = int(face_bbx[0][i])
ymin = int(face_bbx[1][i])
xmax = int(face_bbx[0][i] + face_bbx[2][i])
ymax = int(face_bbx[1][i] + face_bbx[3][i])
bboxes.append((xmin, ymin, xmax, ymax))
yield DATA(os.path.join(self.path_to_image, directory,
im_name + '.jpg'), bboxes)

src/prepare_data/__init__.py → dface/train_net/__init__.py View File


src/train_net/train.py → dface/train_net/train.py View File

@@ -1,10 +1,10 @@
from core.image_reader import TrainImageReader
from dface.core.image_reader import TrainImageReader
import datetime
import os
from core.models import PNet,RNet,ONet,LossFn
from dface.core.models import PNet,RNet,ONet,LossFn
import torch
from torch.autograd import Variable
import core.image_tools as image_tools
import dface.core.image_tools as image_tools




src/train_net/train_o_net.py → dface/train_net/train_o_net.py View File

@@ -1,8 +1,8 @@
import argparse
import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
import train as train
import config
import dface.config as config
import os



src/train_net/train_p_net.py → dface/train_net/train_p_net.py View File

@@ -1,8 +1,8 @@
import argparse
import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
from train import train_pnet
import config
import dface.config
import os



src/train_net/train_r_net.py → dface/train_net/train_r_net.py View File

@@ -1,8 +1,8 @@
import argparse
import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
import train as train
import config
import dface.config
import os



+ 0
- 0
src/train_net/__init__.py View File


+ 2
- 3
test_image.py View File

@@ -1,7 +1,6 @@
import cv2
from core.detect import create_mtcnn_net, MtcnnDetector
import core.vision as vision

from dface.core.detect import create_mtcnn_net, MtcnnDetector
from dface.core import vision





Loading…
Cancel
Save