Exemple #1
0
  def test_new_localization_workflow(self):
    # Write a new localization.
    article_dir = os.path.join(Article.LOCALIZED_ROOT, 'de')
    os.makedirs(article_dir)
    with open(os.path.join(article_dir, 'article1.html'), 'w') as f:
      text = r'%s{%% tag %%}%sBeispiel' % (UNTRANSLATABLE_BEGIN,
                                           UNTRANSLATABLE_END)
      f.write(text)

    l7r = Localizer(original_root=Article.ROOT,
                    localized_root=Article.LOCALIZED_ROOT)

    self.assertEqual(1, len(l7r.articles))

    # Test writing localizable HTML
    l7r.GenerateLocalizableFiles()
    self.assertTrue(os.path.exists(l7r.articles[0].localizable_file_path))
    self.assertTrue(os.path.isfile(l7r.articles[0].localizable_file_path))

    # Test importataion.
    l7r.ImportLocalizedFiles()
    self.assertEqual([], l7r.articles[0].new_localizations)
    self.assertTrue(os.path.exists(l7r.articles[0].GetOriginalFilePath('en')))
    self.assertTrue(os.path.isfile(l7r.articles[0].GetOriginalFilePath('en')))
    self.assertTrue(os.path.exists(l7r.articles[0].GetOriginalFilePath('de')))
    self.assertTrue(os.path.isfile(l7r.articles[0].GetOriginalFilePath('de')))

    # Verify contents
    with open(l7r.articles[0].GetOriginalFilePath('de'), 'r') as infile:
      contents = infile.read()
      self.assertEqual("{% tag %}Beispiel", contents)
Exemple #2
0
 def testSimple(self):
     l7r = Localizer(original_root=os.path.join(TEST_ROOT, 'test_fixtures',
                                                'localizer_simple'))
     l7r.GenerateLocalizableFiles()
     for article in l7r.articles:
         self.__created_files.append(article.localizable_file_path)
         self.assertTrue(os.path.exists(article.localizable_file_path))
         self.assertTrue(os.path.isfile(article.localizable_file_path))
Exemple #3
0
 def testSimple(self):
     l7r = Localizer(original_root=os.path.join(TEST_ROOT, 'test_fixtures',
                                                'localizer_simple'))
     self.assertEqual(3, len(l7r.articles))
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_simple',
                      'article1'), l7r.articles[0].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_simple',
                      'article2'), l7r.articles[1].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_simple',
                      'article3'), l7r.articles[2].path)
Exemple #4
0
    def __init__(self):

        # Initialize ROS node
        rospy.init_node("Controller")
        self.name = "Controller object"
        self.rate = rospy.Rate(10)  # allow node to 'spin' at 10hz

        rospy.on_shutdown(self.shutdown)  # calls this function when Ctrl+C

        self.motion = Motion()
        self.sensor = Sensor()
        self.localizer = Localizer()

        self.visited_highlights = []

        # Boolean for reached goal
        self.goalReached = False
Exemple #5
0
 def testDeeper(self):
     l7r = Localizer(original_root=os.path.join(TEST_ROOT, 'test_fixtures',
                                                'localizer_deeper'))
     self.assertEqual(6, len(l7r.articles))
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path1', 'path2', 'article1'), l7r.articles[0].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path1', 'path2', 'article2'), l7r.articles[1].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path1', 'path2', 'article3'), l7r.articles[2].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path3', 'path4', 'article4'), l7r.articles[3].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path3', 'path4', 'article5'), l7r.articles[4].path)
     self.assertEqual(
         os.path.join(TEST_ROOT, 'test_fixtures', 'localizer_deeper',
                      'path3', 'path4', 'article6'), l7r.articles[5].path)
Exemple #6
0
    def __init__(self, test_run):
        super(main_window, self).__init__()
        self.lysing = True
        # get our experiment variables
        if test_run != 'True':
            self.get_experiment_variables()

        # Set up the user interface
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # set up the video classes
        self.vid = ShowVideo(self.ui.verticalLayoutWidget.size())
        self.screen_shooter = screen_shooter()
        self.image_viewer = ImageViewer()
        # self.autofocuser = autofocuser()
        self.localizer = Localizer()

        # add the viewer to our ui
        self.ui.verticalLayout.addWidget(self.image_viewer)

        # create our extra threads
        self.screenshooter_thread = QThread()
        self.screenshooter_thread.start()
        self.screen_shooter.moveToThread(self.screenshooter_thread)

        # self.autofocuser_thread = QThread()
        # self.autofocuser_thread.start()
        # self.autofocuser.moveToThread(self.autofocuser_thread)

        self.localizer_thread = QThread()
        self.localizer_thread.start()
        self.localizer.moveToThread(self.localizer_thread)

        self.video_input_thread = QThread()
        self.video_input_thread.start()
        self.vid.moveToThread(self.video_input_thread)

        # connect the outputs to our signals
        self.vid.VideoSignal.connect(self.image_viewer.setImage)
        self.vid.vid_process_signal.connect(
            self.screen_shooter.screenshot_slot)
        # self.vid.vid_process_signal.connect(self.autofocuser.vid_process_slot)
        self.vid.vid_process_signal.connect(self.localizer.vid_process_slot)
        self.qswitch_screenshot_signal.connect(
            self.screen_shooter.save_qswitch_fire_slot)
        self.localizer.qswitch_screenshot_signal.connect(
            self.screen_shooter.save_qswitch_fire_slot)
        # self.start_focus_signal.connect(self.autofocuser.autofocus)
        self.start_localization_signal.connect(self.localizer.localize)
        # self.autofocuser.position_and_variance_signal.connect(self.plot_variance_and_position)
        self.image_viewer.click_move_signal.connect(stage.click_move_slot)
        self.localizer.localizer_move_signal.connect(stage.localizer_move_slot)
        self.localizer.ai_fire_qswitch_signal.connect(
            self.ai_fire_qswitch_slot)
        self.localizer.start_laser_flash_signal.connect(
            self.start_laser_flash_slot)
        self.localizer.stop_laser_flash_signal.connect(
            self.stop_laser_flash_slot)
        self.vid.reticle_and_center_signal.connect(
            stage.reticle_and_center_slot)
        self.vid.reticle_and_center_signal.emit(self.vid.center_x,
                                                self.vid.center_y,
                                                self.vid.reticle_x,
                                                self.vid.reticle_y)

        # connect to the video thread and start the video
        self.start_video_signal.connect(self.vid.startVideo)
        self.start_video_signal.emit()

        # Screenshot and comment buttons
        self.ui.misc_screenshot_button.clicked.connect(
            self.screen_shooter.save_misc_image)
        self.ui.user_comment_button.clicked.connect(self.send_user_comment)
        self.ui.noise_filter_checkbox.stateChanged.connect(
            self.noise_filter_check_changed)

        # Stage movement buttons
        self.ui.step_size_doublespin_box.valueChanged.connect(
            stage.set_step_size)
        self.setup_combobox()
        self.localizer.get_position_signal.connect(stage.get_position_slot)
        stage.position_return_signal.connect(
            self.localizer.position_return_slot)

        # Laser control buttons
        self.ui.qswitch_delay_doublespin_box.valueChanged.connect(
            laser.set_delay)
        self.ui.attenuator_doublespin_box.valueChanged.connect(
            attenuator.set_attenuation)

        self.ui.cells_to_lyse_doublespin_box.valueChanged.connect(
            self.localizer.set_cells_to_lyse)
        self.ui.process_well_pushButton.clicked.connect(
            self.start_localization)
        self.show()
        comment('finished gui init')
Exemple #7
0
# TODO: showcase localizer and goniometer
# create a picture
# load the best localizer and goniometer
# load an image
# make a b/w version
# use  localizer to find resistors
# pass the subimages to goniometer to read the angles
# get the subimages from the color picture
# rotate the subimages back to 0º and output them.

# TODO: standarize what kind of arguments each object takes, and be coherent
# TODO: test_localizer converts to BW by itself
# TODO: goniometer.get_angle()

localizer = Localizer(filepath='datasets/dataset4/best_model')
goniometer = Goniometer(filepath='datasets/dataset5/best_model')

picture_bw = picture.convert('F')

resis_boxs = localizer.localize(np.asarray(picture_bw))
plt.show()
resis_pics = []  # cropped pictures of the resistors

for b in resis_boxs:
    x1, y1 = b[0], b[1]
    x2, y2 = b[2], b[3]
    angle_ind = goniometer.predict(np.asarray(picture_bw)[y1:y2, x1:x2])
    angle = goniometer.angle_list[angle_ind[0]]
    sec = picture.crop((x1, y1, x2, y2))
    print(angle)
Exemple #8
0
                          'stores them in `./_unlocalized`. If `--yaml` is '
                          'also specified, then only the YAML template is '
                          'generated.'))
  parser.add_option('--import', dest='import_html',
                    default=False, action='store_true',
                    help=('Generate Django templates from localized '
                          'HTML articles in `./_localized`.'))
  parser.add_option('--yaml', dest='yaml_infile', default='',
                    help=('Generate localizable template from a specified YAML '
                          'file. Output is written to `./[filename].html`'))

  options = parser.parse_args()[0]
  if not (options.generate_html or options.import_html):
    parser.error('You must specify either `--generate` or `--import`.')

  l7r = Localizer(original_root=Article.ROOT,
                   localized_root=Article.LOCALIZED_ROOT)

  if options.generate_html and options.yaml_infile:
    try:
      l7r.GenerateLocalizableYaml(options.yaml_infile)
    except YamlProcessorException:
      parser.error('`%s` couldn\'t be read.' % options.yaml_infile)
  elif options.generate_html:
    try:
      os.mkdir(Article.UNLOCALIZED_ROOT)
    except OSError:
      pass
    l7r.GenerateLocalizableFiles()
  elif options.import_html:
    try:
      os.mkdir(Article.LOCALIZED_ROOT)
Exemple #9
0
dataset = 4
imgs_loc = 'datasets/dataset{0}/dataset{0}_imgs.csv'.format(dataset)
boxs_loc = 'datasets/dataset{0}/dataset{0}_boxs.csv'.format(dataset)

pics = np.genfromtxt(imgs_loc, delimiter=',')
boxs = np.genfromtxt(boxs_loc, delimiter=',')

# Resize the box lists
boxs = boxs.reshape(boxs.shape[0], -1, 4)

# dimensions of the whole pictures, constant for now
picshape = 240, 240  # height and width

# Create the NN model

localizer = Localizer(picshape=(240, 240), hidden_layers=(42, 30, 10))

epochs = 20
batch_size = 20
localizer.train(pics, boxs, epochs, batch_size)

i = random.randint(0, pics.shape[0] - 1)
pic = pics[i, :].reshape(240, 240)
utils.test_localizer(localizer, pic, show_probs=True)
#print(localizer.predict(pic))

# a hard test, just for fun

resistors = Image.open('resistors.png', mode='r')
resistors = resistors.convert(mode='F')
Exemple #10
0
    def __init__(self):
        '''Initializes the server.'''
        self.mode = "server"

        self.oP = OutPipe("Server", 0)
        self.nC = None

        self.cvars = {
            "sv_addr": "0.0.0.0",
            "sv_port": 7777,
            "sv_netlog": 0,
            "sv_level": "",
            "sv_game": 0,
            "sv_singleplayer": 0,
            "sv_gamemode": "singleplayer",
            "sv_startscript": "",
            "sv_master": "",
            "sv_dedicated": 0,
            "sv_chat": 1,
            "sv_background_red": 0,
            "sv_background_green": 0,
            "sv_background_blue": 0,
            "sv_background_alpha": 0,
            "sv_password": "",
            "cl_language": "en",
            "cl_subtitles": 1,
            "cl_width": 1280,
            "cl_height": 720,
            "cl_fullscreen": 0,
            "cl_motionblur": 0,
            "cl_motionblur_amount": 0,
            "cl_anisotropic": 1,
            "cl_mipmap": "none",
            "cl_vsync": "off",
            "cl_musicvolume": 10,
            "cl_dialogvolume": 10,
            "cl_soundvolume": 10,
            "cl_netping": 0,
        }

        self.netVars = {}

        self.oldNetVars = self.netVars
        self.oldcvars = self.cvars

        self.gameMode = None
        self.level = None

        self.unassignedPlayers = []

        self.entities = []

        self.events = []

        self.saveFile = None

        self.chatMessages = []

        self.eI = EngineInterface(True)
        self.sE = ScriptExecuter()
        self.pR = PhysicsReader(self)
        self.sH = ShaderHandler()
        self.l = Localizer(self)

        self.updateNetwork()

        self.forceUpdateCVars()

        self.keepAliveTicker = 0
        self.trackedProperties = []

        loadServer(self)

        self.oP("Initialized.")
Exemple #11
0
    def __init__(self):
        '''Initializes the client.'''

        self.mode = "client"

        self.oP = OutPipe("Client", 0)

        self.eI = EngineInterface(objectMode=True)
        self.vP = VideoPlayer()
        self.sE = ScriptExecuter()
        self.iR = InputReceiver()
        self.l = Localizer(self)
        self.pA = PhysicsApplicator(self)
        self.sH = ShaderHandler()
        self.nC = None

        self.sE.addContext("Client", self)

        self.cvars = {
            #Low level settings
            "cl_update": 1,
            "cl_synced": 0,
            "cl_addr": "0.0.0.0",
            "cl_oport": 7777,
            "cl_iport": 7778,
            "cl_netlog": 0,
            "cl_game": 0,
            "cl_startscript": "",
            "cl_master": 0,
            "cl_predict": 1,
            "cl_smooth": 0,
            "cl_name": "Player",
            "cl_password": "",
            "cl_camera": "",
            "cl_lockcontrols": 1,
            "cl_showmouse": 1,
            "cl_xsens": 50,
            "cl_ysens": 50,
            "cl_inverted": 0,
            "cl_netping": 0,

            #High level settings
            "cl_language": "en",
            "cl_subtitles": 1,
            "cl_width": 1280,
            "cl_height": 720,
            "cl_fullscreen": 0,
            "cl_motionblur": 0,
            "cl_motionblur_amount": 0,
            "cl_anisotropic": 1,
            "cl_mipmap": "none",
            "cl_vsync": "off",
            "cl_musicvolume": 10,
            "cl_dialogvolume": 10,
            "cl_soundvolume": 10,
            "cl_mastervolume": 10,

            #Server shared settings
            "sv_level": "",
            "sv_gamemode": "",
            "sv_game": 0,
            "sv_background_red": 0,
            "sv_background_green": 0,
            "sv_background_blue": 0,
            "sv_background_alpha": 0,
        }

        self.netVars = {}

        self.chatMessages = []

        self.interfaces = []
        self.entities = []
        self.level = None

        self.gameEvents = []
        self.updateNetwork()

        #self.startLoop()
        self.forceUpdateCVars()

        self.keepAliveTicker = 0
        self.trackedProperties = []

        loadClient(self)

        self.oP("Initialized.")
Exemple #12
0
# -*- coding: utf-8 -*-

import numpy as np
import random

from PIL import Image

import utils
from localizer import Localizer
from picture_generator import PictureGenerator

from keras.utils.np_utils import to_categorical

# Create the NN model

localizer = Localizer(input_shape=(48, 48), hidden_layers=(42, 30, 10))

# Create the data generator

generator = PictureGenerator(batch_size=15,
                             batches_per_epoch=500,
                             return_angles=False,
                             resistor_prob=0.5,
                             real_backgrounds=True,
                             angle_num=8,
                             flatten=False)

# Train the model

epochs = 10
Exemple #13
0
 def __init__(self, model_path):
     self.model = np.load(open(model_path, 'r')).item()
     self.head = 6
     self.payload = 6
     self.localizer = Localizer()
     print('Inflation model loaded')