基于图像的生态信息系统

ibeis的Python项目详细描述


ReadTheDocsPypiDownloadsCodecovCircleCITravisAppveyor

^{1}$

这个项目是WildMe/WildBook项目的一个组件:请参见https://github.com/WildbookOrg/

IBEIS-图像分析

一、 B.E.I.S.=基于图像的生态信息系统

"(Note: the rhino and wildebeest mathces may be dubious. Other species do work well though")

程序说明

IBEIS图象和衍生数据的存储和管理程序 用于计算机视觉算法。它的目的是计算谁是动物,什么 动物是物种,动物的最终目标是 问重要的为什么是生物学问题。这张回购图像分析图片 IBEIS的分析模块。它既是python模块又是独立程序。在

目前,该系统是围绕和SQLite数据库构建的,一个pyqt4gui,以及 matplotlib可视化。使用的算法有:随机森林物种 检测定位,hessian仿射关键点检测,SIFT关键点 说明,使用近似近邻进行LNBNN识别。 正在开发的算法是用于识别的SMK(选择性匹配核) 以及用于检测和定位的深层神经网络。在

IBEIS的核心是IBEISController类。它为IBEIS提供了一个API 数据管理和算法。IBEIS API文档可在以下位置找到: <引用>http://erotemic.github.io/ibeis

ibeisgui(图形用户界面)构建在API之上。 我们也在尝试一种新的web前端,它绕过了旧的GUI代码。在

自行安装的可执行文件:

不幸的是,我们还没有发布IBEIS的自安装可执行文件。 我们计划“很快”发布这些。在

但是也有旧的热水獭(IBEIS基于的软件) 二进制文件可用。可从以下网址下载:http://cs.rpi.edu/hotspotter/

可视化演示

Feature ExtractionNearest Neighbors

比赛得分

Match Inspection

空间验证

sver
python -m vtool.spatial_verification --test-spatially_verify_kpts --show

姓名评分

namematch ^{pr2}$

身份等级

rankedmatches
python -m ibeis.algo.hots.chip_match show_ranked_matches --show --qaid 86

推论

encgraph
# broken
# python -m ibeis.algo.preproc.preproc_encounter compute_encounter_groups --show

IBEIS开发环境设置

注:此部分已过时。在

# The following install script install ibeis and all dependencies.
# If it doesnt you can look at the older instructions which follow
# and try to figure it out. After running this you should have a code
# directory with all of the above repos.
# Navigate to your code directory
exportCODE_DIR=~/code
mkdir $CODE_DIRcd$CODE_DIR# Clone IBEIS
git clone https://github.com/Erotemic/ibeis.git
cd ibeis

# Install the requirements for super_setup
pip install -r requirements/super_setup.txt

# Install the development requirements (note-these are now all on pypi, so
# this is not strictly necessary)
python super_setup.py ensure

# NOTE: you can use super_setup to do several things
python super_setup.py --help
python super_setup.py versions
python super_setup.py status
python super_setup.py check
python super_setup.py pull

# Run the run_developer_setup.sh file in each development repo
python super_setup.py develop

# Or you can also just do to use pypi versions of dev repos:
python setup.py develop

# Optional: set a workdir and download a test dataset
.python -m ibeis.dev
.python -m ibeis.dev -t mtest
python -m ibeis.dev -t nauts
./reset_dbs.py

python -m ibeis --set-workdir ~/data/work --preload-exit
python -m ibeis -e ensure_mtest

# make sure everyhing is set up correctly
python -m ibeis --db PZ_MTEST

运行测试

运行测试的新方法是使用xdoctest,或者使用“run_博士.sh“剧本。在

示例用法

(注:这份清单还远未完成)

#--------------------
# Main Commands
#--------------------
python -m ibeis.main <optional-arguments> [--help]
python -m ibeis.dev <optional-arguments> [--help]# main is the standard entry point to the program
# dev is a more advanced developer entry point
# ** NEW 7-23-2015 **: the following commands are now equivalent and do not
# have to be specified from the ibeis source dir if ibeis is installed
python -m ibeis <optional-arguments> [--help]
python -m ibeis.dev <optional-arguments> [--help]# Useful flags.
# Read code comments in dev.py for more info.
# Careful some commands don't work. Most do.
# --cmd          # shows ipython prompt with useful variables populated
# -w, --wait     # waits (useful for showing plots)
# --gui          # starts the gui as well (dev.py does not show gui by default, main does)
# --web          # runs the program as a web server
# --quiet        # turns off most prints
# --verbose      # turns on verbosity
# --very-verbose # turns on extra verbosity
# --debug2       # runs extra checks
# --debug-print  # shows where print statments occur
# -t [test]
#--------------------
# PSA: Workdirs:
#--------------------
# IBEIS uses the idea of a work directory for databases.
# Use --set-workdir <path> to set your own, or a gui will popup and ask you about it
./main.py --set-workdir /raid/work --preload-exit
./main.py --set-logdir /raid/logs/ibeis --preload-exit

python -m ibeis.dev --set-workdir ~/data/work --preload-exit

# use --db to specify a database in your WorkDir
# --setdb makes that directory your default directory
python -m ibeis.dev --db <dbname> --setdb

# Or just use the absolute path
python -m ibeis.dev --dbdir <full-dbpath>


#--------------------
# Examples:
# Here are are some example commands
#--------------------
# Run the queries for each roi with groundtruth in the PZ_MTEST database
# using the best known configuration of parameters
python -m ibeis.dev --db PZ_MTEST --allgt -t best
python -m ibeis.dev --db PZ_MTEST --allgt -t score


# View work dir
python -m ibeis.dev --vwd --prequit

# List known databases
python -m ibeis.dev -t list_dbs


# Dump/Print contents of params.args as a dict
python -m ibeis.dev --prequit --dump-argv

# Dump Current SQL Schema to stdout
python -m ibeis.dev --dump-schema --postquit


#------------------
# Convert a hotspotter database to IBEIS
#------------------
# NEW: You can simply open a hotspotter database and it will be converted to IBEIS
python -m ibeis convert_hsdb_to_ibeis --dbdir <path_to_hsdb>

# This script will exlicitly conver the hsdb
python -m ibeis convert_hsdb_to_ibeis --hsdir <path_to_hsdb> --dbdir <path_to_newdb>

#---------
# Ingest examples
#---------
# Ingest raw images
python -m ibeis.dbio.ingest_database --db JAG_Kieryn

#---------
# Run Tests
#---------
./run_tests.py

#----------------
# Test Commands
#----------------
# Set a default DB First
python -m ibeis.dev --setdb --dbdir /path/to/your/DBDIR
python -m ibeis.dev --setdb --db YOURDB
python -m ibeis.dev --setdb --db PZ_MTEST
python -m ibeis.dev --setdb --db PZ_FlankHack

# List all available tests
python -m ibeis.dev -t help# Minimal Database Statistics
python -m ibeis.dev --allgt -t info
# Richer Database statistics
python -m ibeis.dev --allgt -t dbinfo
# Print algorithm configurations
python -m ibeis.dev -t printcfg
# Print database tables
python -m ibeis.dev -t tables
# Print only the image table
python -m ibeis.dev -t imgtbl
# View data directory in explorer/finder/nautilus
python -m ibeis.dev -t vdd

# List all IBEIS databases
python -m ibeis list_dbs
# Delete cache
python -m ibeis delete_cache --db testdb1


# Show a single annotations
python -m ibeis.viz.viz_chip show_chip --db PZ_MTEST --aid 1 --show
# Show annotations 1, 3, 5, and 11
python -m ibeis.viz.viz_chip show_many_chips --db PZ_MTEST --aids=1,3,5,11 --show


# Database Stats for all our important datasets:
python -m ibeis.dev --allgt -t dbinfo --db PZ_MTEST | grep -F "[dbinfo]"# Some mass editing of metadata
python -m ibeis.dev --db PZ_FlankHack --edit-notes
python -m ibeis.dev --db GZ_Siva --edit-notes
python -m ibeis.dev --db GIR_Tanya --edit-notes
python -m ibeis.dev --allgt -t dbinfo --db GZ_ALL --set-all-species zebra_grevys

# Current Experiments:
# Main experiments
python -m ibeis --tf draw_annot_scoresep --db PZ_MTEST -a default -t best --show
python -m ibeis.dev -e draw_rank_cdf --db PZ_MTEST --show -a timectrl
# Show disagreement cases
ibeis --tf draw_match_cases --db PZ_MTEST -a default:size=20\
    -t default:K=[1,4]\
    --filt :disagree=True,index=0:4 --show

# SMK TESTS
python -m ibeis.dev -t smk2 --allgt --db PZ_MTEST --nocache-big --nocache-query --qindex 0:20
python -m ibeis.dev -t smk2 --allgt --db PZ_MTEST --qindex 20:30 --va

# Feature Tuning
python -m ibeis.dev -t test_feats -w --show --db PZ_MTEST --allgt --qindex 1:2

python -m ibeis.dev -t featparams -w --show --db PZ_MTEST --allgt
python -m ibeis.dev -t featparams_big -w --show --db PZ_MTEST --allgt

# NEW DATABASE TEST
python -m ibeis.dev -t best --db seals2 --allgt

# Testing Distinctivness Parameters
python -m ibeis.algo.hots.distinctiveness_normalizer --test-get_distinctiveness --show --db GZ_ALL --aid 2
python -m ibeis.algo.hots.distinctiveness_normalizer --test-get_distinctiveness --show --db PZ_MTEST --aid 10
python -m ibeis.algo.hots.distinctiveness_normalizer --test-test_single_annot_distinctiveness_params --show --db GZ_ALL --aid 2# 2D Gaussian Curves
python -m vtool_ibeis.patch --test-test_show_gaussian_patches2 --show

# Test Keypoint Coverage
python -m vtool_ibeis.coverage_kpts --test-gridsearch_kpts_coverage_mask --show
python -m vtool_ibeis.coverage_kpts --test-make_kpts_coverage_mask --show

# Test Grid Coverage
python -m vtool_ibeis.coverage_grid --test-gridsearch_coverage_grid_mask --show
python -m vtool_ibeis.coverage_grid --test-sparse_grid_coverage --show
python -m vtool_ibeis.coverage_grid --test-gridsearch_coverage_grid --show

# Test Spatially Constrained Scoring
python -m ibeis.algo.hots.vsone_pipeline --test-compute_query_constrained_matches --show
python -m ibeis.algo.hots.vsone_pipeline --test-gridsearch_constrained_matches --show

# Test VsMany ReRanking
python -m ibeis.algo.hots.vsone_pipeline --test-vsone_reranking --show
python -m ibeis.algo.hots.vsone_pipeline --test-vsone_reranking --show --homog

# Problem cases with the back spot
python -m ibeis.algo.hots.vsone_pipeline --test-vsone_reranking --show --homog --db GZ_ALL --qaid 425
python -m ibeis.algo.hots.vsone_pipeline --test-vsone_reranking --show --homog --db GZ_ALL --qaid 662
python -m ibeis.dev -t custom:score_method=csum,prescore_method=csum --db GZ_ALL --show --va -w --qaid 425 --noqcache
# Shows vsone results with some of the competing cases
python -m ibeis.algo.hots.vsone_pipeline --test-vsone_reranking --show --homog --db GZ_ALL --qaid 662 --daid_list=425,342,678,233

# More rerank vsone tests
python -c "import utool as ut; ut.write_modscript_alias('Tbig.sh', 'dev.py', '--allgt  --db PZ_Master0')"
sh Tbig.sh -t custom:rrvsone_on=True custom
sh Tbig.sh -t custom:rrvsone_on=True custom --noqcache

#----
# Turning back on name scoring and feature scoring and restricting to rerank a subset
# This gives results that are closer to what we should actually expect
python -m ibeis.dev --allgt -t custom \
    custom:rrvsone_on=True,prior_coeff=1.0,unconstrained_coeff=0.0,fs_lnbnn_min=0,fs_lnbnn_max=1\
    custom:rrvsone_on=True,prior_coeff=0.5,unconstrained_coeff=0.5,fs_lnbnn_min=0,fs_lnbnn_max=1\
    custom:rrvsone_on=True,prior_coeff=0.1,unconstrained_coeff=0.9,fs_lnbnn_min=0,fs_lnbnn_max=1\
    --print-bestcfg
#----
#----
# VsOneRerank Tuning: Tune linar combination
python -m ibeis.dev --allgt -t \
    custom:fg_weight=0.0 \
\
    custom:rrvsone_on=True,prior_coeff=1.0,unconstrained_coeff=0.0,fs_lnbnn_min=0.0,fs_lnbnn_max=1.0,nAnnotPerNameVsOne=200,nNameShortlistVsone=200\
\
    custom:rrvsone_on=True,prior_coeff=.5,unconstrained_coeff=0.5,fs_lnbnn_min=0.0,fs_lnbnn_max=1.0,nAnnotPerNameVsOne=200,nNameShortlistVsone=200\
\
  --db PZ_MTEST
#--print-confusion-stats --print-gtscore
#----
# Testing no affine invaraiance and rotation invariance
python -m ibeis.dev -t custom:AI=True,RI=True custom:AI=False,RI=True custom:AI=True,RI=False custom:AI=False,RI=False --db PZ_MTEST --show

注意事项/我们目前没有做的事情

  • 我们不添加或删除kdtrees中的点。他们总是被重建

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何删除打印行之间的空格?   如何解决Jsoup Java中的HTML错误500   Java移植到Python中的AES加密   java如何将列表数据加载到struts组合框标记中   java返回两个数字的索引,这样它们加起来就是一个特定的目标   swing java web start未知源异常   如何更改光标在java中的位置   java重新讨论了如何使用POJO验证响应体   swing Java 2d游戏:为什么变量在KeyReleased之外没有变化?   java在Hibernate中检索manytoone关系中的manyside对象的ID   java在用作表编辑器时动态填充JComboBox   java Android studio gradle签名块验证错误   java split方法,用于在读取文件时输出彼此下面的值