Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koji/ictrainer
image classifier train program
https://github.com/koji/ictrainer
cli image-classification keras machine-learning pypi-packages python tensorflow tool
Last synced: 3 months ago
JSON representation
image classifier train program
- Host: GitHub
- URL: https://github.com/koji/ictrainer
- Owner: koji
- License: mit
- Created: 2019-02-24T01:39:43.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-06-21T19:21:47.000Z (over 5 years ago)
- Last Synced: 2024-10-01T16:08:10.640Z (4 months ago)
- Topics: cli, image-classification, keras, machine-learning, pypi-packages, python, tensorflow, tool
- Language: Python
- Homepage: https://pypi.org/project/ictrainer/
- Size: 74.8 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![PyPI version](https://badge.fury.io/py/pypi.svg)](https://pypi.org/project/ictrainer/)
### icTrainer is a python module which allows users to train image classifier easilyBasically, this module is for `python3`
## Install```
$ pip install ictrainer
```
Also you can install manually.
```
clone repo
$ git https://github.com/koji/icTrainer.git
$ cd icTrainer/ictrainer
$ python setup.py install
```## How to Use
In this gude, we will create a dog/cat image classifier.
### 1.Collect Images
https://icrawler.readthedocs.io/en/latest/```
$ ictrainer --mode collect --keyword dog -n 250
$ ictrainer --mode collect --keyword cat -n 250
```
You'll have dogs & cats images under `dataset` folder.### 2. Resize images
In this step, we will change all images size for training. The current input size must be `320 x 180`(required).
This step may be mess up images you collected, so you need to check all images manually. In the furture, there will be a function that save your time.```
$ ictrainer --mode resize --target dog
$ ictrainer --mode resize --target cat
```For people want to use resize mode for other thing, you can use reize images with the following command.
The folder structure should be the same the above.
```
$ ictrainer --mode resize --target cat --image_width 480 --image_height 320
```### 3.Create folders for classes
This step, we'll need to create folders and distribute images to `train` & `validation` folder.#### 3-1. create folders
Create a couple of folders under dataset.
This step will be automated in the future.
```
dataset
├── train
│ ├── cat
│ └── dog
└── val
├── cat
└── dog
```#### 3-2. distribute images
Move images we got via `image collect mode`. In this case, probably we have 250 images for each other.
We will put 225 images for train and 25 images for validation so that `train/dog` has 225 images and `validation/dog` has 25 images. The cats should be the same.### 4.Train Images
There are some options we need to put. The most important one is `--classes` which will be labels. In this case, we have dog & cat, so we need to put them as classes.
`--batch`: batch size default 16
`--epoch`: epoch default 30
`--mname`: output model name
`--lr`: learning rate default 1e-3
`momentum`: mementum default 0.9We will use default settings.
```
$ ictrainer --mode train --classes "cat" "dog" --mname "dogAndcat_"
```### 5 Face detection
From 0.2.0 ictrainer allows you to use face detection. The command is following. This function is using `OpenCV` Cascade filter to detect front faces. When you successfully run this command, ictrainer creates `output` folder and there are faces and something which means still you need check all image by yourself.
--mode face
--target target folder
```
$ ictrainer --mode face --target dataset/celeb
```## video
#### `image collecting mode`
https://www.youtube.com/watch?v=k5r_xrW_cxE## pre-train model
#### `smart device`
https://github.com/koji/icTrainer/blob/master/model/smartdevice_epoch30.h5
```
classes = ['echo', 'echoplus', 'echoshow', 'googlehome', 'googlehomemini', 'nest']
```