Skip to content

Overview

Spencer Riffle edited this page Jul 28, 2023 · 23 revisions

Overview of Obstruction Research SPUR '23

Goal: Identify obstructed images using neural network (NN) better than with the multi-pronged approach with Obstruction Obstruction codebase.

Services:

  1. Pre-processing service/processor
  2. Exemplar-processing processor
  3. Matching-processor
  4. Data-store service/processor
  5. Visualization processor

Datastore:

HDF5 w/ C++ bindings from full images to pre-processed images to characterization data from images

Visualization Options:

  1. Sci-plot
  2. Matplotlib
  3. Plplot (from obstruction research)

Document generation:

  1. Doxygen for code
  2. Apache POI for documents, spreadsheets, etc.
  3. LibHaru for PDFs

Image Processing and NN (Java used Weka):

  1. Start with OpenCV w/ intrinsic and GPU support
  2. Move down to CUDA low-level code if needed

Development/Production Reproducibility:

Docker

Development Environment:

  1. Visual Studio Code w/ Extensions:
    1. C/C++ from Microsoft v1.15.4
    2. C/C++ Extension Pack from Microsoft v1.3.0
    3. C/C++ Themes from Microsoft v2.0.0
    4. Nsight Visual Studio Code Edition from NVIDIA v2023.2.32887604
    5. CMake twxs v0.0.17
    6. CMake Tools from Microsoft v1.14.33
    7. GitHub Pull Requests and Issues from GitHub v0.64.0
    8. Add this line to the project's include paths to connect opencv2: "/usr/local/include/opencv4/opencv2/**"
    9. Recommended compilers are Cuda-GDB or NVCC. Both can be found in usr/local/cuda/bin after the instructions to install OpenCV with cuda support have been complete.
    10. SuperString Library
    11. Boost library for legacy support with nvcc compiler (libboost-dev)
  2. Ubuntu 22.04 LTS
  3. PlantUML and Java for design support
  4. OpenCV with CUDA support
    1. Be sure to change the opencv install lines to 4.2.0, not 4.5.2 from the link below
    2. For more help, check this gist which details our exact buildflow: Gist
  5. Extraneous libraries to the project
    1. Levenshteinn distance libraries
    2. Excel Manipulation Libraries
    3. Parallel Hashmap Libraries
    4. PLPlot

Clone this wiki locally