diff --git a/BatchROISampler.lua b/BatchROISampler.lua index 7ca0bab..0d2f3dd 100644 --- a/BatchROISampler.lua +++ b/BatchROISampler.lua @@ -6,8 +6,7 @@ require 'xlua' ---local utils = require 'fastrcnn.utils' -local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') +local utils = require 'fastrcnn.utils' if not fastrcnn then fastrcnn = {} end diff --git a/ImageDetector.lua b/ImageDetector.lua index 185c885..1086346 100644 --- a/ImageDetector.lua +++ b/ImageDetector.lua @@ -3,8 +3,7 @@ ]] ---local utils = require 'fastrcnn.utils' -local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') +local utils = require 'fastrcnn.utils' if not fastrcnn then fastrcnn = {} end diff --git a/ROIProcessor.lua b/ROIProcessor.lua index 801708e..49ad38a 100644 --- a/ROIProcessor.lua +++ b/ROIProcessor.lua @@ -3,9 +3,7 @@ ]] ---local box = require 'fastrcnn.utils.box' ---local boxoverlap = box.boxoverlap -local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') +local utils = require 'fastrcnn.utils' local boxoverlap = utils.box.boxoverlap if not fastrcnn then fastrcnn = {} end diff --git a/Tester.lua b/Tester.lua index a885d71..c04ebac 100644 --- a/Tester.lua +++ b/Tester.lua @@ -5,10 +5,8 @@ local tds = require 'tds' local xlua = require 'xlua' ---local eval = require 'fastrcnn.eval' ---local utils = require 'fastrcnn.utils' -local eval = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/eval/init.lua') -local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') +local eval = require 'fastrcnn.eval' +local utils = require 'fastrcnn.utils' if not fastrcnn then fastrcnn = {} end @@ -208,14 +206,6 @@ function Tester:test() local raw_bbox_pred = tds.hash() local aboxes - --self.cache_filename = '/home/mf/Toolkits/Codigo/git/fastrcnn-example/data/cache.t7' - --self.cache_filename = '/home/mf/Toolkits/Codigo/git/pedestrian_detector/data/exp/caltech/alexnet_vanilla_frcnn/cache.t7' - --if paths.filep(self.cache_filename) then - -- print('Load test cache from file: ' .. self.cache_filename) - -- aboxes = torch.load(self.cache_filename) - --else - - if self.progressbar then xlua.progress(0, self.nFiles) end for ifile = 1, self.nFiles do @@ -233,10 +223,6 @@ function Tester:test() collectgarbage() - --print('Save test cache to file: ' .. self.cache_filename) - --torch.save(self.cache_filename, aboxes) - --end - return self:computeAP(aboxes) end diff --git a/eval/coco_eval.lua b/eval/coco_eval.lua index 93b8b69..c05bd35 100644 --- a/eval/coco_eval.lua +++ b/eval/coco_eval.lua @@ -5,8 +5,7 @@ require 'xlua' require 'json' ---local coco_eval_python = require 'fastrcnn.eval.coco' -local coco_eval_python = paths.dofile('coco.lua') +local coco_eval_python = require 'fastrcnn.eval.coco' ------------------------------------------------------------------------------------------------------------ diff --git a/eval/init.lua b/eval/init.lua index 6b90c62..af4db4a 100644 --- a/eval/init.lua +++ b/eval/init.lua @@ -3,8 +3,6 @@ ]] return{ - coco = paths.dofile('coco_eval.lua'), - pascal = paths.dofile('pascal_eval.lua'), - --coco = require 'fastrcnn.eval.coco_eval', - --pascal = require 'fastrcnn.eval.pascal_eval' + coco = require 'fastrcnn.eval.coco_eval', + pascal = require 'fastrcnn.eval.pascal_eval' } \ No newline at end of file diff --git a/eval/pascal_eval.lua b/eval/pascal_eval.lua index 5e802ee..d36803d 100644 --- a/eval/pascal_eval.lua +++ b/eval/pascal_eval.lua @@ -3,10 +3,8 @@ ]] ---local box = require 'fastrcnn.utils.box' ---local boxoverlap = box.boxoverlap -local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') -local boxoverlap = utils.box.boxoverlap +local box = require 'fastrcnn.utils.box' +local boxoverlap = box.boxoverlap --------------------------------------------------------------------------------------------------------------------- diff --git a/init.lua b/init.lua index 7c9c389..8ca2dfb 100644 --- a/init.lua +++ b/init.lua @@ -16,7 +16,7 @@ require 'cudnn' require 'inn' fastrcnn = {} ---[[ + require 'fastrcnn.modules' -- bbox modules for train/test require 'fastrcnn.BatchROISampler' -- data loader/generator require 'fastrcnn.ImageDetector' -- single image detector/tester @@ -30,20 +30,5 @@ fastrcnn.train = require 'fastrcnn.train' fastrcnn.test = require 'fastrcnn.test' fastrcnn.utils = require 'fastrcnn.utils' fastrcnn.visualize_detections = require 'fastrcnn.visualize' -]] - -paths.dofile('modules/init.lua') -- bbox modules for train/test -paths.dofile('BatchROISampler.lua') -- data loader/generator -paths.dofile('ImageDetector.lua') -- single image detector/tester -paths.dofile('Tester.lua') -- dataset tester -paths.dofile('Options.lua') -- Fast-RCNN options parser -paths.dofile('ROIProcessor.lua') -paths.dofile('Transform.lua') - --- load setup/options functions -fastrcnn.train = paths.dofile('train.lua') -fastrcnn.test = paths.dofile('test.lua') -fastrcnn.utils = paths.dofile('utils/init.lua') -fastrcnn.visualize_detections = paths.dofile('visualize.lua') return fastrcnn \ No newline at end of file diff --git a/modules/init.lua b/modules/init.lua index e86364f..79a40b8 100644 --- a/modules/init.lua +++ b/modules/init.lua @@ -1,8 +1,4 @@ require 'nn' -paths.dofile('BBoxNorm.lua') -paths.dofile('BBoxRegressionCriterion.lua') -paths.dofile('NoBackprop.lua') - ---require 'fastrcnn.modules.BBoxNorm' ---require 'fastrcnn.modules.BBoxRegressionCriterion' ---require 'fastrcnn.modules.NoBackprop' +require 'fastrcnn.modules.BBoxNorm' +require 'fastrcnn.modules.BBoxRegressionCriterion' +require 'fastrcnn.modules.NoBackprop' diff --git a/train.lua b/train.lua index 46e833a..599cf94 100644 --- a/train.lua +++ b/train.lua @@ -27,7 +27,6 @@ --]] ---local function train(dataLoadTable, rois, model, modelParameters, opts) local function train(data_gen, rois, model, modelParameters, opts) assert(data_gen, 'Invalid input: dataLoadTable') @@ -36,8 +35,7 @@ local function train(data_gen, rois, model, modelParameters, opts) assert(modelParameters, 'Invalid input: modelParameters') local tnt = require 'torchnet' - --local utils = require 'fastrcnn.utils' - local utils = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/init.lua') + local utils = require 'fastrcnn.utils' local modelStorageFn = utils.model.storeModel @@ -45,8 +43,7 @@ local function train(data_gen, rois, model, modelParameters, opts) -- Load configs (data, model, criterion, optimState) -------------------------------------------------------------------------------- - local configs = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/configs.lua') - --local configs = require 'fastrcnn.configs' + local configs = require 'fastrcnn.configs' local dataLoadTable = data_gen() local opt, modelOut, criterion, optimStateFn, nEpochs = configs(model, dataLoadTable, rois, modelParameters, opts or {}) local lopt = opt @@ -57,10 +54,7 @@ local function train(data_gen, rois, model, modelParameters, opts) -- set number of iterations local nItersTrain = opt.trainIters - local nItersTest - if dataLoadTable.test then - nItersTest = dataLoadTable.test.nfiles/opt.frcnn_imgs_per_batch - end + local nItersTest = opt.trainIters -- classes local classes = utils.table.concatTables({'background'}, dataLoadTable.train.classLabel) @@ -68,54 +62,6 @@ local function train(data_gen, rois, model, modelParameters, opts) -- convert modules to a specified tensor type local function cast(x) return x:type(opt.dataType) end ---[[ - local function getIterator_test(mode) - return tnt.ParallelDatasetIterator{ - nthread = opt.nThreads, - init = function(threadid) - require 'torch' - require 'torchnet' - opt = lopt - paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/init.lua') - torch.manualSeed(threadid+opt.manualSeed) - end, - closure = function() - - -- data loader/generator - local data_loader = data_gen() - local batchprovider = fastrcnn.BatchROISampler(data_loader[mode], rois[mode], modelParameters, opt, mode) - - -- number of iterations per epoch - local nIters = data_loader[mode].nfiles - - -- setup dataset iterator - local list_dataset = tnt.ListDataset{ - list = torch.range(1, nIters):long(), - load = function(idx) - return batchprovider:getSample(idx) - end - } - return list_dataset - end, - } - end - - for _, mode in pairs({'train', 'test'}) do - print('Starting mode: ', mode) - local iter = getIterator_test(mode) - local idx = 1 - local data_loader = data_gen() - local nfiles = data_loader[mode].nfiles - for saple in iter() do - xlua.progress(idx, nfiles) - idx = idx + 1 - end - end - - os.exit() ---]] - - -------------------------------------------------------------------------------- -- Setup data generator @@ -127,11 +73,8 @@ local function train(data_gen, rois, model, modelParameters, opts) init = function(threadid) require 'torch' require 'torchnet' + require 'fastrcnn' opt = lopt - --require 'fastrcnn.BatchROISampler' - paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/init.lua') - --paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/BatchROISampler.lua') - --paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/ROIProcessor.lua') torch.manualSeed(threadid+opt.manualSeed) end, closure = function() diff --git a/utils/box.lua b/utils/box.lua index eef1eb8..dd5714e 100644 --- a/utils/box.lua +++ b/utils/box.lua @@ -3,8 +3,7 @@ ]] ---local utils_table = require 'fastrcnn.utils.table' -local utils_table = paths.dofile('/home/mf/Toolkits/Codigo/git/fastrcnn/utils/table.lua') +local utils_table = require 'fastrcnn.utils.table' ------------------------------------------------------------------------------------------------------------ diff --git a/utils/init.lua b/utils/init.lua index bf2b1ae..265ec92 100644 --- a/utils/init.lua +++ b/utils/init.lua @@ -3,6 +3,8 @@ ]] +------------------------------------------------------------------------------------------------------------ + local function logical2ind(logical) if logical:numel() == 0 then return torch.LongTensor() @@ -58,24 +60,19 @@ end return { -- model utility functions - model = paths.dofile('model.lua'), - --model = require 'fastrcnn.utils.model', + model = require 'fastrcnn.utils.model', -- non-maximum suppression - nms = paths.dofile('nms.lua'), - --nms = require 'fastrcnn.utils.nms', + nms = require 'fastrcnn.utils.nms', -- bounding box overlap - box = paths.dofile('box.lua'), - --box = require 'fastrcnn.utils.box', + box = require 'fastrcnn.utils.box', -- table functions - table = paths.dofile('table.lua'), - --table = require 'fastrcnn.utils.table', + table = require 'fastrcnn.utils.table', -- load matlab files - load = paths.dofile('load.lua'), - --load = require 'fastrcnn.utils.load', + load = require 'fastrcnn.utils.load', -- other functions logical2ind = logical2ind, diff --git a/utils/model.lua b/utils/model.lua index 07f2baf..33308d4 100644 --- a/utils/model.lua +++ b/utils/model.lua @@ -3,6 +3,10 @@ ]] +require 'nn' + +------------------------------------------------------------------------------------------------------------ + local function MSRinit(model) for k,v in pairs(model:findModules('nn.SpatialConvolution')) do local n = v.kW*v.kH*v.nOutputPlane diff --git a/utils/nms.lua b/utils/nms.lua index 5ed9255..bdd04a4 100644 --- a/utils/nms.lua +++ b/utils/nms.lua @@ -9,8 +9,7 @@ void bbox_vote(THFloatTensor *res, THFloatTensor *nms_boxes, THFloatTensor *scor void NMS(THFloatTensor *keep, THFloatTensor *scored_boxes, float overlap); ]] ---local ok, C = pcall(ffi.load, package.searchpath('libfastrcnn', package.cpath)) -local ok, C = pcall(ffi.load, '/home/mf/Toolkits/Codigo/git/fastrcnn/lib/libnms.so') +local ok, C = pcall(ffi.load, package.searchpath('libfastrcnn', package.cpath)) assert(ok, 'Installation went wrong when compiling the C code.') ------------------------------------------------------------------------------------------------------------ diff --git a/visualize.lua b/visualize.lua index 1efd5a9..b64acff 100644 --- a/visualize.lua +++ b/visualize.lua @@ -2,8 +2,7 @@ Visualize detections using a GUI window (requires qlua/qt). ]] ---local nms = require 'fastrcnn.utils.nms' -local nms = paths.dofile('utils/nms.lua') +local nms = require 'fastrcnn.utils.nms' ---------------------------------------------------------------------------------------------------------------------