Skip to content

Commit

Permalink
Migrate to pure cmake project (#2)
Browse files Browse the repository at this point in the history
* refactor: remove ROS-related code

* build: use general cmake template

* build: fix colcon building

- use general cmake template
- remove ros related code
- add config files for linters and formatters

* feat(base): add implementation of object and geometry classes

- impl Object, BBox2D, Point2D and PointCloud
- store detection results in Object

* refactor(tracker): use Object for tracker results

* feat: migrate SyncedMemory and Blob from BVLC/caffe

* feat(base): add Image8U and DataProvider

colorspace conversion is only supported when USE_GPU=1

* feat(frame): add CameraFrame

* feat(util): add utility functions for CameraFrame

* feat(base): add type and runtime classes

- InferenceFrondendType and InferenceBackendType
- InferenceRuntime

* feat(base): add Tensor class

- Blob will be merged into Tensor class later
- Tensor class will be based on SyncedMemory later

* refactor(base): update comments of Tensor class

* refactor(base): update Runtime class

add Infer() method, just passthrough the results from backend

* feat(backend): support creating TensorRT backend

in InferenceRuntime

* refactor(base): update ToString method for InferenceFrontendType

* feat(interface): add BaseInferenceModel

* feat(vision): add Mat class based on Tensor

* feat(vision): add BaseTransform for image preprocessing

* feat(vision): add basic vision transform ops for preprocessing

* feat(vision): add transform ops: Interpolate and Pad

* docs(vision): add desc for YOLOv7-End2End model conversion

* feat(interface): support perf in BaseInferenceModel

* refactor(interface): fix typos

* refactor(base): use 'onnx' as default model frontend

* refactor: remove dependencies of yolo-tensorrt library

* refactor: remove legacy code

* feat(vision): add Visualization class

* docs(base): add docstrings

* docs: add docstrings for interface and util

* docs: add docstrings for vision module

* docs(vision): add desc for YOLOv5-End2End models

* docs(vision): add desc for YOLOX-End2End models

* feat(vision): add ReIDReuslt for FastReID model

* feat(vision): add TrackingResult

* docs(vision): add desc for FastReID models

* refactor(vision): add utility functions for tracking

* feat(vision): add DeepSORT tracker

* refactor(vision): update deepsort::KalmanFIlter::StateType

* fix(vision): use bboxes in TLBR format in detection/tracking results

i.e., the output from DeepSORT tracker should be in TLBR format, no matter what format used inside

* docs(vision): add docstring for DeepSORTTracker

* feat(vision): add prototype of ByteTrack tracker

* docs(vision): add docstring for ByteTrack tracker

* refactor(vision): unify the interface of vision trackers

- two Update() functions for det-trk, and det-feat-trk
- GetParams() functions to get or modify parameters
- Name() for model name

* fix(vision): correct bbox formats in ByteTrack

- input/output of ByteTracker is TLBR
- input/output of STrack is TLWH
- input/output of kalman filter is XYAH
  • Loading branch information
corenel authored Oct 8, 2022
1 parent 2b7534d commit 0d6bd75
Show file tree
Hide file tree
Showing 112 changed files with 6,729 additions and 5,207 deletions.
156 changes: 156 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
- Regex: '^<.*\.h>'
Priority: 1
- Regex: '^<.*'
Priority: 2
- Regex: '.*'
Priority: 3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth: 2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
RawStringFormats:
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- 'c++'
- 'C++'
CanonicalDelimiter: ''
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
CanonicalDelimiter: ''
BasedOnStyle: google
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseTab: Never
...
12 changes: 12 additions & 0 deletions .clangd
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Diagnostics:
ClangTidy:
Add:
[
performance-*,
bugprone-*,
portability-*,
modernize-*,
]
Remove: modernize-use-trailing-return-type
CheckOptions:
WarnOnFloatingPointNarrowingConversion: false
24 changes: 24 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[flake8]
# B = bugbear
# E = pycodestyle errors
# F = flake8 pyflakes
# W = pycodestyle warnings
# B9 = bugbear opinions
# ISC = implicit-str-concat
select = B, E, F, W, B9, ISC
ignore =
# slice notation whitespace, invalid
E203
# import at top, too many circular import fixes
E402
# line length, handled by bugbear B950
E501
# bare except, handled by bugbear B001
E722
# bin op line break, invalid
W503
# up to 88 allowed by bugbear B950
max-line-length = 88
extend-ignore = E203
per-file-ignores = __init__.py: F401
exclude = docs
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@
*.out
*.app
.vscode/

COLCON_IGNORE
CATKIN_IGNORE
4 changes: 0 additions & 4 deletions .gitmodules

This file was deleted.

67 changes: 67 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
repos:
- repo: https://github.com/pocc/pre-commit-hooks
rev: v1.3.5
hooks:
- id: clang-format
args: ["--style=Google"]
# - id: clang-tidy
# - repo: https://github.com/asottile/reorder_python_imports
# rev: v2.6.0
# hooks:
# - id: reorder-python-imports
# name: Reorder Python imports (src, tests)
# exclude: ^(src/zetton-common/|src/zetton-inference/)
# args:
# [
# "--application-directories",
# "src",
# "--unclassifiable-application-module",
# "usfs_common",
# "--unclassifiable-application-module",
# "usfs_inference",
# "--unclassifiable-application-module",
# "zetton_common",
# "--unclassifiable-application-module",
# "zetton_inference",
# "--unclassifiable-application-module",
# "rospy",
# "--unclassifiable-application-module",
# "rospy",
# "--unclassifiable-application-module",
# "rosbag",
# "--unclassifiable-application-module",
# "message_filters",
# "--unclassifiable-application-module",
# "cv_bridge",
# "--unclassifiable-application-module",
# "sensor_msgs",
# "--unclassifiable-application-module",
# "sppe_vision",
# "--unclassifiable-application-module",
# "catkin_pkg",
# ]
- repo: https://github.com/psf/black
rev: 21.12b0
hooks:
- id: black
- repo: https://github.com/PyCQA/flake8
rev: 4.0.1
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- flake8-implicit-str-concat
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
- id: check-added-large-files
args: ["--maxkb=10240"]
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- id: check-json
- id: check-symlinks
- id: check-merge-conflict
- id: end-of-file-fixer
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: trailing-whitespace
Loading

0 comments on commit 0d6bd75

Please sign in to comment.