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 numpy as np
import torch import torch
from torch.autograd.variable import Variable 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): 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.conv2d_7b = BasicConv2d(2080, 1536, kernel_size=1, stride=1)
self.avgpool_1a = nn.AvgPool2d(8, count_include_pad=False) self.avgpool_1a = nn.AvgPool2d(8, count_include_pad=False)
self.classif = nn.Linear(1536, num_classes) self.classif = nn.Linear(1536, num_classes)
self.dropout = nn.Dropout(p=0.8)


def forward(self, x): def forward(self, x):
x = self.conv2d_1a(x) x = self.conv2d_1a(x)
@@ -275,5 +276,6 @@ class InceptionResnetV2(nn.Module):
x = self.conv2d_7b(x) x = self.conv2d_7b(x)
x = self.avgpool_1a(x) x = self.avgpool_1a(x)
x = x.view(x.size(0), -1) x = x.view(x.size(0), -1)
x = self.dropout(x)
x = self.classif(x) x = self.classif(x)
return 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 os
import config
import dface.config as config
import assemble as assemble 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 os
import config
import dface.config as config
import assemble as assemble 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 os
import config
import dface.config as config
import assemble as assemble 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 cv2
import numpy as np 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 time
import os import os
import cPickle 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): 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 cv2
import os import os
import numpy.random as npr 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): 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 cv2
import numpy as np 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 time
import os import os
import cPickle 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): 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 sys
import numpy.random as npr import numpy.random as npr
import argparse 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): 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 sys
import numpy.random as npr import numpy.random as npr
import argparse 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 sys
import numpy.random as npr import numpy.random as npr
import argparse 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): 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 cv2
import numpy as np 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 time
import os import os
import cPickle 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): 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 datetime
import os import os
from core.models import PNet,RNet,ONet,LossFn
from dface.core.models import PNet,RNet,ONet,LossFn
import torch import torch
from torch.autograd import Variable 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 argparse
import sys import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
import train as train import train as train
import config
import dface.config as config
import os 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 argparse
import sys import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
from train import train_pnet from train import train_pnet
import config
import dface.config
import os 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 argparse
import sys import sys
from core.imagedb import ImageDB
from dface.core.imagedb import ImageDB
import train as train import train as train
import config
import dface.config
import os import os





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


+ 2
- 3
test_image.py View File

@@ -1,7 +1,6 @@
import cv2 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