Resources
Focus on certain aspects:
A comprehensive survey can be found here.
black-box/white-box attack: the adversarial example is generated with or without knowing the prior knowledge of the target model.
targeted/non-targeted attack: whether predicting a specific label for the adversarial example.
universal perturbation: fool a given model on any image with high probability.
Backward Update
add imperceptible distortion and increase the classification loss
universal adversarial perturbation: learn a residual perturbation that works on most clean images
Forward Update
one-pixel attack: use differential evolution algorithm
Adversarial Transformation Networks: learn a network to translate clean image to adversarial example.
Use modified training samples during training or modified test samples during testing
Modify network: model parameters regularization, add a layer/module
Adversarial example detector: classify an example as adversarial or clean based on certain statistics
[1] Shih, Meng-Li, et al. “3d photography using context-aware layered depth inpainting.” CVPR, 2020.
[2] Tucker, Richard, and Noah Snavely. “Single-view view synthesis with multiplane images.” CVPR, 2020.
[3] Li, Jiaxin, et al. “Mine: Towards continuous depth mpi with nerf for novel view synthesis.” ICCV, 2021.
[4] Niklaus, Simon, et al. “3d ken burns effect from a single image.” ACM Transactions on Graphics (TOG) 38.6 (2019): 1-15.
use nemiver to debug.
The comment character # does not introduce a make comment in the text of commands.
Wildcards: . expands to all the files containing a period. A question mark represents any single character, and […] represents a character class.
.PHONY: clean
Automatic Variables:
run makefile with —just-print option to view the execution process
single C-file
1 | hello: hello.c |
multiple C-files
1 | count_words: count_words.o lexer.o -lfl |
set VPATH and CPPFLAGS in implicit rules
1 | VPATH = src include |
VPATH can be used in a more advanced fashion as follows,
1 | vpath %.c src |
Use library .a. pack .o files into .a, similar as .lib in Windows.
1 | libcounter.a: libcounter.a(lexer.o) libcounter.a(counter.o) |
common head
1 | PROJECT(projectname [CXX] [C] [Java]) # project name |
variable assignment
1 | SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]) |
variable should be used by ${VAR} except for IF condition.
commonly used path variables are listed as follows:
1 | <projectname>_BINARY_DIR = PROJECT_BINARY_DIR=CMAKE_BINARY_DIR |
display message
1 | MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] "message to display") |
generate output binary/library
1 | ADD_EXECUTABLE(hello ${SRC_LIST}) |
search source
1 | INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...) #include files |
CMAKE_INCLUDE_PATH
, CMAKE_LIBRARY_PATH
, CMAKE_MODULE_PATH
are environment variables instead of CMake variables. when using FIND_***
, CMAKE_INCLUDE_PATH
, the above paths will be searched.
1 | FIND_PATH(myHeader hello.h) |
search commands
1 | FIND_FILE(<VAR> name1 path1 path2 ...) |
include the content of other files
1 | include(FILE) # load the content of FILE |
hierarchical binary tree
1 | ADD_SUBDIRECTORY(source_dir [binary_dir][EXCLUDE_FROM_ALL]) |
macro definition
1 | MACRO(add_example name) |
1 | FIND_PATH(HELLO_INCLUDE_DIR hello.h /usr/include/hello /usr/local/include/hello) |
cmake -DCMAKE_INSTALL_PREFIX=/usr # the default install target is /usr/local
install library and binary
1 | INSTALL(TARGETS targets... |
ARCHIVE is static library *.a; LIBRARY is dynamic library *.so; RUNTIME is executable binary
install regular file
1 | INSTALL(FILES files... DESTINATION <dir> |
install script file (e.g., *.sh), almost the same with installing files except for permission
1 | INSTALL(PROGRAMS files... DESTINATION <dir> |
install folders
1 | INSTALL(DIRECTORY dirs... DESTINATION <dir> |
install *.cmake
1 | INSTALL([[SCRIPT <file>] [CODE <code>]] [...]) |
1 | ADD_TEST(mytest ${PROJECT_BINARY_DIR}/bin/main) |
After generating Makefile
, run make test
Cmake supports CDT4 and higher versions.1
cmake -help # check the supported generator
Install CDT to Eclipse: http://www.eclipse.org/cdt/downloads.php
The eclipse build directory should be sibling directory of the source directory.
1 | mkdir eclipse |
cmake --build . --config Release
is equivalent to make
cmake --build . --target install --config Release
is equivalent to make install
White balance: White balance is the process of removing unrealistic color casts, so that objects which appear white in person eyes are shown white in the image and this is more relevant to the settings of digital cameras (auto white balance). Since human eyes are very good at judging what is white under different light sources, if an
white object is captured in a wrong or mismatched color temperature, the realism could be significantly degraded.
datasets: https://cvil.eecs.yorku.ca/projects/public_html/sRGB_WB_correction/dataset.html
Color constancy: Color constancy is the ability to perceive color of objects, invariant to the color of the light source and it’s quite related to the human visual system. Existing computational color constancy methods
address this problem by first estimating the color of the light source and then correcting the input images pixel
to pixel to make it as taken under a white light source.
datasets: http://colorconstancy.com/evaluation/datasets/index.html